指令不同步,MySQL 準備語句問題
您在嘗試執行兩個MySQL 時遇到錯誤「指令不同步」使用mysqli和PHP 進行查詢。當正在進行多個無緩衝查詢且命令未按正確順序執行時,會出現此錯誤。
在您的程式碼中,您準備了兩個查詢:$countQuery 和 $recordsQuery。但是,預設情況下,mysqli 對準備好的語句使用無緩衝查詢。這意味著必須在執行下一個查詢之前取得每個查詢的結果。
錯誤原因
您的程式碼嘗試在 $ 循環內執行 $recordsQuery計數查詢。由於未取得 $countQuery 的結果,mysqli 將其視為無緩衝查詢並繼續無序執行 $recordsQuery。這會導致“命令不同步”錯誤。
解
要解決此問題,您有兩個選擇:
store_result()的範例
if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the query results $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; // Continue with your code...
注意:
free_result() 的 $countQuery。如果您使用 store_result,則不需要此操作。以上是為什麼我在 PHP 中使用 MySQL 準備語句時會出現「指令不同步」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!