嘗試同時執行多個查詢時會出現此錯誤使用PDO 時,PDO::ATTR_EMULATE_PREPARES 設定為false。它表明 MySQL 伺服器無法處理執行其他查詢,直到檢索到所有先前的無緩衝查詢。
PDO 的預設行為是透過將準備好的語句轉換為無緩衝查詢來模擬它們。無緩衝的查詢會立即執行,結果不會儲存在客戶端。這允許對大型結果集進行記憶體高效的處理。
但是,在此模式下操作時,MySQL 會施加限制,阻止在無緩衝查詢仍在進行時執行後續查詢。這就是錯誤 2014 的根源。
有多種方法可以解決此錯誤:
為了獲得最佳效能和效率,建議在處理大型結果集時使用緩衝查詢或當併發性至關重要時。每次執行無緩衝查詢後應使用 FetchAll() 或 closeCursor() 以釋放伺服器資源。此外,強烈建議使用 mysqlnd 來提高 MySQL 連接性和效能。
以上是為什麼MySQL與PDO並發執行查詢時會出現錯誤2014?的詳細內容。更多資訊請關注PHP中文網其他相關文章!