さて、変数に次のようなsql_queryを設定すると、次のようになります。
$query = mysql_query("..");
そして、次のように複数のmysql_resultを呼び出します。
mysql_result($query, 0);
mysql_result($query, 1);
mysql_result($query, 2);
ページはサーバーに対していくつのクエリを呼び出しますか?1回だけ?または3回?
を実行するとmysql_query
、SQLが実行され、結果が内部結果構造に保持されます。次回呼び出すとmysql_result
、その内部結果からフェッチします。
バッファリングされたクエリの場合、mysql_queryが実行されるとすぐに、結果はMySQLサーバーからPHPにコピーされます。バッファリングされていないクエリの場合、遅延してコピーされます。
したがって、どちらの場合も、クエリは1回だけ実行されます。ただし、バッファリングされていないクエリの場合は、MySQLサーバーからフェッチされます。mysql_result
またはを呼び出すたびにmysq_fetch_*
。バッファリングされたクエリとバッファリングされていないクエリ
これは、サーバーを意味するデータベースを使用した1つのクエリです。mysql_result()は、結果セットを処理する他の関数の呼び出しと混合しないでください。
詳細については、http: //php.net/manual/en/function.mysql-result.phpをご覧ください。
*mysql_query*のみがmysqlサーバーに対して実行されています。クエリは1つだけ
mysql_resultはmysqlリソースからのみデータをフェッチします。以前にコード内のクエリからデータを取得したことがあるか、別のソースからデータを取得できたかは関係ありません。
PHP 5.5.0以降、この関数は非推奨になりました。このアクションを実行する新しい方法は、mysqliオブジェクトを作成し、関数mysqli::queryおよびmysqli::fetch_fieldを使用することです。
あなたは自分で答えを出しました。「query」関数を1回呼び出すと、戻り値を解析した回数に関係なく、1回だけ実行されます。
$query = mysql_query("..");
上記のコードを実行すると、クエリが実行され、返されるリソースは$query変数に含まれます。その後、そこからデータを複数回フェッチできますが、クエリは再度実行されません。