PHP 中的「指令不同步」錯誤
使用 mysqli 執行多個 MySQL 查詢時,可能會遇到「命令不同步;您現在無法執行此命令」錯誤。此錯誤發生是因為 mysqli 預設使用非緩衝查詢,這表示必須在執行後續查詢之前檢索第一個查詢的結果。
錯誤原因
在提供的 PHP 程式碼中,正在執行兩個 MySQL 查詢:
$data = $con->query($countQuery)
$rows = getRowsByArticleSearch("test", "Auctions", " ")
當在檢索第一個查詢的結果之前執行第二個查詢時,很可能會觸發此錯誤。
解
有兩種方法可以解決此問題:
1. 取得第一個查詢的結果
在執行第二個查詢之前,使用 mysqli_fetch_*()
方法檢索第一個查詢的結果。例如:
<code class="language-php">$data = $con->query($countQuery); $rowcount = $data->num_rows;</code>
2. 緩衝查詢
使用 mysqli_stmt::store_result()
啟用查詢緩衝。這將導致 mysqli 在執行第二個查詢之前儲存第一個查詢的結果。
<code class="language-php">$numRecords->store_result();</code>
其他說明
$countQuery
查詢中存在語法錯誤。確保查詢建置正確。 mysqli::multi_query()
方法。此方法自動處理緩衝和同步。 以上是為什麼在 PHP 中執行多個 MySQL 查詢時會出現「命令不同步」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!