ホームページ > バックエンド開発 > PHPチュートリアル > 複数の MySQL クエリを同時に実行するにはどうすればよいですか?

複数の MySQL クエリを同時に実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-24 00:10:20
オリジナル
520 人が閲覧しました

How Can I Execute Multiple MySQL Queries Simultaneously?

複数の mysqli クエリを同時に実行できないのはなぜですか?

お気づきのとおり、連続したクエリを使用して 2 つの別々の MySQL クエリを実行しようとすると、 mysqli_query() 呼び出しの結果、2 番目のクエリは失敗します。この動作はセキュリティ対策によるものです。

mysqli_multi_query() から Rescue

幸いなことに、mysqli は、単一のクエリで複数のクエリを実行するために特別に設計された mysqli_multi_query() 関数を提供します。データベースcall.

コード例

mysqli_multi_query() の使用方法の例を次に示します。

$mysqli = new mysqli($host, $user, $password, $database);

// Create query string with multiple queries separated by ;
$query  = "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName');";
$query .= "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year');";

// Execute query using mysqli_multi_query()
$result = mysqli_multi_query($mysqli, $query);

// Retrieve results
if ($result) {
    do {
        $result = mysqli_store_result($mysqli);
    } while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
} else {
    echo "First query failed: " . mysqli_error($mysqli);
}
ログイン後にコピー

追加考慮事項:

  • mysqli_store_result() は、INSERT クエリなどの結果セットのないクエリに対して FALSE を返します。 mysqli_error() をチェックして、正常に実行されたことを確認します。
  • 「;」の使用に注意してください。

mysqli_multi_query() を使用すると、1 回のデータベース呼び出しで複数のクエリを効率的に実行でき、2 番目のクエリ失敗の問題を回避できます。

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

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