使用 Python 遊標從預存程序中檢索結果
本文解決了使用 Python 從 MySQL 儲存程序呼叫中檢索結果的問題遊標。儘管成功連接到資料庫並在普通SQL 查詢上使用了cursor.execute(),但嘗試使用cursor.fetchall() 或cursor.fetchone() 從預存程序呼叫中獲取結果會傳回錯誤:「mysql. Connector.errors .InterfaceError: No result set to fetch from."
解
解決方案在於使用cursor.stored_results()擷取結果集。此方法迭代任何可用的結果集,允許程式設計師使用所需的結果集。
以下程式碼示範了正確的方法:
import mysql.connector cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb') cnx._open_connection() cursor = cnx.cursor() cursor.callproc("getperson", [1]) for result in cursor.stored_results(): people = result.fetchall() for person in people: print(person) cnx.close()
此程式碼成功從儲存的結果中取得結果過程中不遇到
注意事項
值得注意的是,即使沒有多個SELECT 語句,MySQL Python連接器也可能會指派多個結果集。由於預存程序中包含了 INOUT 和 OUT 變量,而您沒有這些變量,因此可能會發生這種分配。儘管如此,使用cursor.stored_results() 可以有效地處理這種潛在的分配,並允許成功檢索結果。
以上是如何使用 Python 的「cursor.stored_results()」從 MySQL 預存程序中檢索結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!