ホームページ  >  記事  >  CMS チュートリアル  >  Imperial CMS の二次開発における fetch() と fetch1() の使用法を 10 分で完了する

Imperial CMS の二次開発における fetch() と fetch1() の使用法を 10 分で完了する

silencement
silencement転載
2019-11-28 13:50:303338ブラウズ

Imperial CMS の二次開発における fetch() と fetch1() の使用法を 10 分で完了する

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 &#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.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 サイトの他の関連記事を参照してください。

声明:
この記事はwww.word666.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。