首頁 >後端開發 >php教程 >為什麼我的 PHP MySQLi 程式碼中出現「指令不同步」錯誤,如何修復這些錯誤?

為什麼我的 PHP MySQLi 程式碼中出現「指令不同步」錯誤,如何修復這些錯誤?

Linda Hamilton
Linda Hamilton原創
2024-12-20 11:06:09337瀏覽

Why Do I Get

指令不同步:當深入探究原因與解

嘗試透過mysqli 執行使用MySQL 查詢的PHP 程式碼時,可能會出現以下情況:遇到錯誤「命令不同步;您現在無法執行此命令。」此錯誤表示資料庫查詢的順序執行之間存在衝突。

由於 mysqli 對準備好的語句使用了無緩衝查詢,因此提供的 PHP 程式碼出現了此問題。這意味著在任何給定時間只有最近執行的查詢的結果可用。

要解決此錯誤,可以採取兩種方法:

  1. 使用儲存結果: 在執行準備好的語句後呼叫$stmt->store_result (),該查詢的結果將會被緩衝。這允許執行後續查詢而不會影響第一個查詢的結果。
  2. 將結果提取到數組中: 或者,可以使用$stmt-> 將第一個查詢的結果提取到數組中;fetch_all().這會將資料預先載入到記憶體中,釋放連接以執行其他查詢。

在提供的程式碼中,可以在第一個查詢之後使用$stmt->store_result() 來緩衝其結果:

if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $brand);
    $numRecords->execute();
    $numRecords->store_result();
    $data = $con->query($countQuery) or die(print_r($con->error));
    $rowcount = $data->num_rows;
    ...
}

透過實作其中一個解決方案,命令將不再不同步,並且PHP 程式碼應該成功執行。

以上是為什麼我的 PHP MySQLi 程式碼中出現「指令不同步」錯誤,如何修復這些錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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