首頁 >後端開發 >php教程 >MySQLi 準備好的語句可以處理多個查詢嗎?

MySQLi 準備好的語句可以處理多個查詢嗎?

Patricia Arquette
Patricia Arquette原創
2024-11-25 06:07:12907瀏覽

Can MySQLi Prepared Statements Handle Multiple Queries?

mysqli 具有多個查詢的查詢準備

mysqli 的預準備語句功能不支援多查詢準備。 mysqli 中的準備語句僅限於執行單一 MySQL 查詢。

替代方法:

如果需要順序執行多個查詢,可以建立單獨的準備好的語句每個查詢的語句:

$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?)");

基於交易方法:

或者,您可以使用交易來確保兩個查詢都執行或都不執行:

$sql->begin_transaction();

// Execute both queries

if (!$stmtUser->execute() || !$stmtProc->execute()) {
    $sql->rollback();
} else {
    $sql->commit();
}

錯誤調試:

如果遇到「call to member function on a non-object」錯誤,則表示語句的準備失敗。仔細檢查你的prepare()語句是否有任何錯誤。

以上是MySQLi 準備好的語句可以處理多個查詢嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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