PHP mysql_unbuffered_query() 関数

定義と用法

mysql_unbuffered_query() 関数は MySQL に SQL 検索(結果を取得/キャッシュしない)を送信します。

文法

mysql_unbuffered_query(query,接続)
パラメータ 説明
query 必須です。送信する SQL 検索を指定します。注:クエリ文字列はセミコロンで終わらないべきです。
接続 任意です。SQL 接続識別子を指定します。指定しない場合、最後に開いた接続が使用されます。

説明

mysql_unbuffered_query() は MySQL に SQL 検索 query を送信しますが、像 mysql_query() 自動的に結果セットを取得およびキャッシュします。一方で、これは大きな結果セットを処理する場合に、かなりのメモリを節約します。もう一方で、最初の行を取得した後、すぐに結果セットに対して操作を行うことができますが、SQLステートメントが完全に実行されるまで待つ必要はありません。

複数のデータベース接続を使用する場合、オプションの引数を指定する必要があります。 接続

ヒントおよびコメント

注記:mysql_unbuffered_query()の利点には代償があります:mysql_unbuffered_query()が返す結果セットの上では、 mysql_num_rows() および mysql_data_seek()。さらに、MySQLに新しいSQLクエリを送信する前に、すべての未キャッシュのSQLクエリが生成する結果行を抽出する必要があります。

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die('接続できません: ' . mysql_error());
  }
// 大規模クエリ
$sql = "SELECT * FROM Person";
mysql_unbuffered_query($sql,$con);
// データ処理開始...
mysql_close($con);
?>