Python MySQL 連接器:使用Fetchone 時發現未讀結果
在Python 中,在使用MySQL 連接器時經常遇到「未讀結果發現」錯誤源自於使用fetchone() 函數而沒有正確消耗所有結果。當執行後續查詢而沒有先取得和使用先前查詢的任何現有結果時,會出現此錯誤。
要解決此問題,請確保在繼續後續查詢之前取得並使用已執行查詢的所有結果。一種方法是使用cursor.fetchall()方法來檢索所有結果並清除緩衝區。這可以透過新增 try/ except 區塊來捕獲和處理任何 InterfaceErrors 來實現。
但是,在這種特定場景中,問題在於缺少緩衝遊標。預設情況下,建立遊標時不進行緩衝。啟用緩衝可確保預取查詢的所有結果並駐留在用戶端記憶體中。若要啟用緩衝,請使用 buffered=True 參數啟動遊標:
cursor = cnx.cursor(buffered=True)
使用緩衝遊標,fetchone() 將從預取結果集中傳回單行,從而消除未讀取結果導致的錯誤。請務必注意,緩衝遊標可能會消耗更多內存,尤其是在處理大型結果集時。在這種情況下,請考慮使用無緩衝遊標來提高效能。請記住手動獲取並使用所有結果,以防止“找到未讀結果”錯誤。
以上是為什麼我在使用 Python 的 MySQL 連接器時會出現「發現未讀結果」錯誤以及如何修復它們?的詳細內容。更多資訊請關注PHP中文網其他相關文章!