fetch() と fetch1() は、Imperial CMS の二次開発でよく使用される関数です。以下に、fetch() と fetch1() の正しい記述方法といくつかの使用法を紹介します。
(注: fetch() 関数と 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;
検討することをお勧めします"Empirecms Tutorial"
2.fetch1()
簡単に言えば、USERID 1 のメンバー情報を取得するなど、情報をクエリする場合にのみ使用します。 fetch() との違いは、 fetch1() のパラメータが実行結果ではなく SQL ステートメントであるため、SQL ステートメントでは 2 回目は使用せずに直接入力するだけでよく、 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() の両方を使用できます。コードは次のとおりです:
コードは次のとおりです:
fetch1("select id,title from {$dbtbpre}ecms_news where classid=34"); print_r($r1); echo '<hr>'; $sql=$empire->query("select id,title from {$dbtbpre}ecms_news where classid=34"); $r=$empire->fetch($sql); print_r($r); echo '<hr>'; 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].' '; } db_close(); $empire=null;
4.Why。 。 。 ;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() の使用法を 10 分で完了するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。