首頁 >資料庫 >mysql教程 >如何使用 Python 的「cursor.stored_results()」從 MySQL 預存程序中檢索結果?

如何使用 Python 的「cursor.stored_results()」從 MySQL 預存程序中檢索結果?

Barbara Streisand
Barbara Streisand原創
2024-12-01 12:38:15265瀏覽

How to Retrieve Results from a MySQL Stored Procedure using Python's `cursor.stored_results()`?

使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn