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

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

Barbara Streisand
發布: 2024-12-01 12:38:15
原創
326 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板