Python MySQL:解決執行預存程序時出現「Commands Out of Sync」錯誤
Python 程式設計中,利用Django 執行預存程序時在MySQL在資料庫中,某些使用者在嘗試執行後續操作時遇到「命令不同步;您現在無法執行此命令」錯誤呼叫過程後的語句。
當嘗試在程序呼叫後執行非選擇語句(例如更新或刪除操作)而不執行承諾操作時,通常會出現此錯誤。
考慮以下程式碼範例:
cursor.callproc('my_mysql_procedure', [some_id,]) result = cursor.fetchall() for r in result: do something cursor.execute("select * from some_table") result = cursor.fetchall()
執行預存程序後,如果在沒有先關閉和關閉的情況下嘗試非選擇操作,連線將變得「不同步」重新打開遊標。
要解決此問題,建議在從預存程序檢索結果後立即關閉遊標:
cursor.close() cursor = connection.cursor()
重新開啟新遊標可確保連線已正確重設和同步,允許後續語句按預期執行。需要注意的是,從過程呼叫獲得的結果集在關閉遊標後仍然可以存取。
以上是使用 Python 和 MySQL 預存程序時如何修復「命令不同步」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!