ホームページ >CMS チュートリアル >エンパイアCMS >Imperial CMS の二次開発での fetch() と fetch1() の使用方法

Imperial CMS の二次開発での fetch() と fetch1() の使用方法

藏色散人
藏色散人オリジナル
2019-12-14 09:06:212919ブラウズ

Imperial CMS の二次開発での fetch() と fetch1() の使用方法

Empire CMS の二次開発で fetch() と fetch1() を使用する方法は?

fetch( ) と fetch1() は、Imperial CMS の二次開発でよく使われる関数です。fetch() と fetch1() の正しい書き方と使い方を以下に紹介します。 fetch1() 関数は e/class/db_sql.php ファイルにあります)

1.fetch()

通常、リストをループアウトしたり、複数の情報をリストしたりするために使用します。たとえば、次の例では、メンバー グループ ID が 1 であるすべてのメンバー ID とユーザー名を取得します。fetch() のパラメータは SQL ステートメントの実行結果です。つまり、query() が最初に実行され、次に実行結果が取得されます。 query() のパラメータは fetch();

コードは次のとおりです:

query( "select userid,username from {$dbtbpre}enewsmember where groupid=1" ); 
while ( $r = $empire ->fetch( $sql )){ 
echo $r [userid]. '---' . $r [username].'
'; 
} 
db_close(); 
$empire =null;

2.fetch1()

単純につまり、USERID 1 のメンバー情報を取得するなど、情報をクエリする場合にのみ使用します。fetch() との違いは、fetch1() のパラメーターは実行結果ではなく SQL ステートメントであるため、直接入力するだけです。 2 回目に SQL ステートメントを使用する必要はありません; fetch1() は 1 つのデータのみを受け取ります;

コードは次のとおりです

fetch1("select userid,username from {$dbtbpre}enewsmember where userid=1 limit 1"); 
echo $r[userid].'
'; 
echo $r[username].'
'; 
db_close(); 
$empire=null;

さらに詳しく説明します:

1. 情報を取得するとき、fetch() と fetch1() は両方とも Yes で、コードは次のとおりです:

コードは次のとおりです:

fetch1("select id,title from {$dbtbpre}ecms_news where classid=34"); 
print_r($r1); 
echo &#39;<hr>&#39;; 
$sql=$empire->query("select id,title from {$dbtbpre}ecms_news where classid=34"); 
$r=$empire->fetch($sql); 
print_r($r); 
echo &#39;<hr>&#39;; 
db_close(); 
$empire=null;

2. fech1() を使用してデータをループしたい場合は、次のコードをテストできます。結果は悲劇的な無限ループであることがわかったので、すぐに閉じました。ブラウザ;

コードは次のとおりです:

fetch1("select id,title from {$dbtbpre}ecms_news where classid=34")){ 
echo $r1[title]; 
} 
db_close(); 
$empire=null;

3.fetch() は同じデッドエンド ループの記述メソッドです;

コードは次のとおりです:

query("select id,title from {$dbtbpre}ecms_news where classid=341"); 
$r=$empire->fetch($sql); 
while($r)){ 
echo $r[title].&#39;
&#39;; 
} 
db_close(); 
$empire=null;

4.なぜですか。 。 。 ;trylife は、コードがなければ真実はないと言ったことがあるので、ソース ファイルの内容を見てみましょう: 場所: e/class/db_sql.php

コードは次のとおりです:

//执行mysql_fetch_array() 
function fetch($sql)//此方法的参数是$sql就是sql语句执行结果 
{ 
$this->r=mysql_fetch_array($sql); 
return $this->r; 
} 
//执行fetch1(mysql_fetch_array()) 
//此方法与fetch()的区别是:1、此方法的参数是$query就是sql语句 
//2、此方法用于while(),for()数据库指针不会自动下移,而fetch()可以自动下移。 
function fetch1($query) 
{ 
$this->sql=$this->query($query); 
$this->r=mysql_fetch_array($this->sql); 
return $this->r; 
}

①.fetch1() を参照 関数本体には fetch() よりも多くの行があります、「$this->sql=$this->query($query);」; fetch1() は query() を実行します。 first; したがって、情報行を取得するときは、直接 fetch1 () するだけで、コードの入力が少なくなります;

②. 上記の 3 と 4 の無限ループは、PHP の記述上の問題です。 >fetch($query)) 関数は最初にクエリ結果をフェッチします コンテンツの最初の行、その後レコード ポインタは自動的に次の行に移動します; 注: mysql_fetch_array はクエリ結果のデータの最初の行のみを取得します; mysql_fetch_array() while() 括弧内に記述されていないものは、データの最初の行しか読み取ることができないため、鳥の無限ループが発生します。

以上がImperial CMS の二次開発での fetch() と fetch1() の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。