ホームページ > データベース > mysql チュートリアル > PHP で複数の MySQL クエリを同時に実行し、別々の結果セットを処理するにはどうすればよいですか?

PHP で複数の MySQL クエリを同時に実行し、別々の結果セットを処理するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-18 12:01:11
オリジナル
379 人が閲覧しました

How Can I Execute Multiple MySQL Queries Simultaneously in PHP and Handle Separate Result Sets?

PHP/MySQL で複数の MySQL クエリを 1 つとして実行する

概要

複数の SQL を実行する同時にクエリを実行すると、データベース処理の効率が向上します。この記事では、PHP/MySQL で 2 つの MySQL クエリを 1 つとして実行する方法を検討し、別々の結果セットを効果的に処理する必要性に対処します。

問題の定義

次の 2 つを考慮してください。 MySQL クエリ:

SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10;
SELECT FOUND_ROWS();
ログイン後にコピー

最初のクエリは my_table からデータをフェッチし、2 番目のクエリは my_table からデータをフェッチします。クエリはテーブル内の行の総数を計算します。

PHP 実行

通常、これらのクエリは mysql_query() 関数を使用して個別に実行されます。ただし、このアプローチでは、個々の結果セットを個別に処理する方法は提供されません。

$result1 = mysql_query($query1);
$result2 = mysql_query($query2);
ログイン後にコピー

複数のクエリの実行

1 回の試行で両方のクエリを実行するには、 mysqli_multi_query() 関数を使用できます。この関数を使用すると、複数のクエリを順番に実行できます。

$mysqli = new mysqli('hostname', 'username', 'password', 'database_name');

mysqli_multi_query($mysqli, $query1 . ';' . $query2);
ログイン後にコピー

結果セットの処理

クエリの実行後、mysqli_store_result() を使用して結果セットを取得できます。 function:

$result1 = $mysqli->store_result();
$result2 = $mysqli->store_result();
ログイン後にコピー

これで、それぞれを反復処理できます。データセットを使用して ASP.NET で処理される方法と同様に、結果セットは個別に設定されます。

while ($row1 = $result1->fetch_assoc()) {
    // Process row data from the first query
}

while ($row2 = $result2->fetch_assoc()) {
    // Process row data from the second query
}
ログイン後にコピー

mysqli_multi_query() 関数に注意することが重要です。個々のクエリが独立しており、互いの結果に依存しない場合にのみ使用してください。

以上がPHP で複数の MySQL クエリを同時に実行し、別々の結果セットを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート