MySQL 錯誤2014 的原因:當其他未緩衝的查詢處於活動狀態時無法執行查詢
嘗試在先前執行新查詢時會出現此錯誤完成先前無緩衝查詢的處理結果。 MySQL 的客戶端協定不允許多個查詢同時「進行中」。
解:
-
使用PDO::fetchAll():此方法隱式取得上一個查詢的所有結果,從而允許執行下一個查詢查詢。
-
啟用查詢緩衝:將 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 設為 true,導致客戶端庫在內部而不是 PHP 緩衝結果。
-
CloseCursors:呼叫 closeCursor() 通知伺服器您已完成取得查詢的結果。
其他建議:
- 將循環不變程式碼移到循環之外:避免重複執行返回相同結果的查詢循環內的結果。
- 在準備好的語句中使用命名參數來簡化參數通過。
- 考慮使用 mysqlnd 用戶端程式庫來改善功能和效率。
以上是為什麼我會收到 MySQL 錯誤 2014:「當其他未緩衝的查詢處於活動狀態時無法執行查詢」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!