mysql_unbuffered_query
MySQL に SQL クエリを送信するが、結果に対してのフェッチやバッファリングは行わない
&mysql.alternative.note;
Buffered and Unbuffered queries を参照
&reftitle.description;
resourcemysql_unbuffered_query
stringquery
resourcelink_identifierNULL
mysql_unbuffered_query は SQL クエリ
query を MySQL に送信します。その際、
mysql_query が行っているような自動バッファリングを
行いません。一方、この挙動により SQL クエリが消費するメモリの量を
おさえられます。また、最初の 1 行目が取得されたらすぐに処理を
はじめることができます。SQL の処理が完全に終わるまで待つ必要がありません。
複数の DB 接続を利用する場合には、オプションのパラメータ
link_identifier を指定する必要があります。
&reftitle.parameters;
query
実行する SQL クエリ。
クエリ内のデータは 適切にエスケープ
する必要があります。
&mysql.linkid.description;
&reftitle.returnvalues;
SELECT, SHOW, DESCRIBE あるいは EXPLAIN では、
mysql_unbuffered_query は
成功した場合に resource 、エラー時に &false; を返します。
UPDATE, DELETE, DROP, などその他の SQL 文では、
mysql_unbuffered_query は
成功した場合に &true; 、エラー時に &false; を返します。
&reftitle.notes;
mysql_unbuffered_query の利点には、以下のような
代償があります:
mysql_unbuffered_query から返される結果セットには、
すべての行をフェッチするまでは
mysql_num_rows や mysql_data_seek
を使用できません。また、結果の行をすべてフェッチするまで、
同じ link_identifier
を使って MySQL に新しいクエリを送信することができません。
&reftitle.seealso;
mysql_query