質問してください
$lh = mysql_connect('localhost', 'root', 'root');
$qry = "SELECT * FROM aaa LIMIT 10"; mysql_unbuffered_query($qry, $lh);
$thread = mysql_thread_id ( $lh );
while ( $res = mysql_fetch_row( $rh ) )
{
$sql = "INSERT INTO b bb ( Goods_id,user_id) value(1111,2222)";
mysql_query($sql);
//ループ内で他の SQL が実行されると while は終了します。どういう状況ですか?
}
以前のバッファリングされていないクエリから最初にすべての行をフェッチせずに関数が呼び出されました
以前のバッファリングされていないクエリから最初にすべての行をフェッチせずに呼び出された関数
マニュアルに記載されているように、次のことができます。見て見ぬふりをするだけではないですよね?
新しい SQL クエリを MySQL に送信する前に、キャッシュされていない SQL クエリによって生成されたすべての結果行をフェッチする必要があります。
たとえば、$qry = "SELECT * FROM aaa LIMIT 10";
つまり、$rh = mysql_unbuffered_query($qry, $lh); の場合、
は存在しません。多くのリソース $rh 行 10 の結果
他のデータベース操作を実行する前に、それらをすべて読み出す必要があります
率直に言うと、MySQL に結果をキャッシュさせないと、自分で結果をキャッシュする
これで理解できましたか?
司会者の皆様、丁寧なご説明ありがとうございました。
/ループ内で他の SQL が実行された場合、while は終了します。どういう状況ですか?
( $res = mysql_fetch_row( $rh ) ) mysql_fetch_row($rh) が影響を受けるため