可以在單一 mysqli 語句中執行多個查詢嗎?

Linda Hamilton
發布: 2024-10-29 03:57:29
原創
170 人瀏覽過

Can You Execute Multiple Queries in a Single mysqli Statement?

單一 mysqli 語句中的多個查詢

您可以準備一個執行多個查詢的 mysqli 語句嗎?

問題:

是否可以建構一個執行多個查詢的 mysqli 語句?例如:

<code class="php">mysqli->prepare("query1 ...1,2,3 param...; query2...4,5 param...");
or 
mysqli->prepare("insert into ...1,2,3 param...; insert into...4,5 param...");</code>
登入後複製

嘗試這樣的構造會導致錯誤,「在...中的非物件上呼叫成員函數bind_param()」

<code class="php">$stmt = $sql->getQueryPrepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?); INSERT INTO process (id_user, idp) VALUES (?,?);");

$stmt->bind_param("ssssss",$id, $username, $pw, $email, $id, $idp);

$stmt->execute();
$stmt->close(); </code>
登入後複製

答案:

準備好的語句只能執行單一MySQL 查詢。但是,您可以在單獨的變數中準備多個語句:

<code class="php">$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");</code>
登入後複製

這些語句可以隨後執行。如果您需要確保兩個查詢都成功執行,請考慮使用事務。

請記住,「呼叫非物件上的成員函數」錯誤通常表示在prepare()語句中失敗,而不是後續程式碼出現問題。

以上是可以在單一 mysqli 語句中執行多個查詢嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!