首頁 >後端開發 >php教程 >如何使用mysqli在MySQL中同時執行多個INSERT語句?

如何使用mysqli在MySQL中同時執行多個INSERT語句?

Barbara Streisand
Barbara Streisand原創
2024-12-07 19:50:14516瀏覽

How Can I Execute Multiple INSERT Statements Simultaneously in MySQL Using mysqli?

多個mysqli 查詢:同時執行INSERT 語句

原始問題:

嘗試執行🎜>原始問題:

嘗試執行🎜>嘗試執行🎜>連續使用mysqli_query() 的兩個INSERT語句會導致第二次查詢失敗。此問題源自於 MySQL 的安全措施,該措施防止在單一呼叫中執行多個查詢。

解決方案:mysqli_multi_query()

$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');";

$result = mysqli_multi_query($mysqli, $query);

在單一呼叫中執行多個查詢呼叫時,需要使用 mysqli_multi_query() function:

處理查詢結果

while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)) {
    if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') {
        echo "Query failed: " . mysqli_error($mysqli);
    }
}

執行 mysqli_multi_query() 傳回一個布林值。然而,使用mysqli_store_result() 手動檢索每個查詢的結果並使用mysqli_more_results() 和mysqli_next_result() 循環遍歷它們是至關重要的:

    my_multi_my_multi_quei_multi_quei 的優點>
  • 執行多個在一次呼叫中高效查詢。
透過防止查詢幹擾來維護資料庫完整性。

其他注意事項
  • mysqli_store_result()對於沒有結果的查詢(例如 INSERT 語句)可能會傳回 FALSE。使用 mysqli_error() 確認成功。
請參閱 mysqli_multi_query()、mysqli_more_results()、mysqli_next_result() 和 mysqli_store_result() 的文檔以了解更多詳細資訊。

以上是如何使用mysqli在MySQL中同時執行多個INSERT語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn