複数の 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_multi_query() を使用すると、1 回のデータベース呼び出しで複数のクエリを効率的に実行でき、2 番目のクエリ失敗の問題を回避できます。
以上が複数の MySQL クエリを同時に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。