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 '<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.なぜですか。 。 。 ;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 サイトの他の関連記事を参照してください。