首頁 >資料庫 >mysql教程 >如何在 Python 中正確檢索 MySQL 預存程序的結果?

如何在 Python 中正確檢索 MySQL 預存程序的結果?

DDD
DDD原創
2024-12-01 04:55:17475瀏覽

How to Properly Retrieve Results from MySQL Stored Procedures in Python?

使用 Python 遊標呼叫 MySQL 預存程序

在 Python 應用程式中使用 MySQL 預存程序時,正確處理結果擷取至關重要。儘管看起來很簡單,但從過程中檢索結果可能會導致一些意外錯誤。

一個常見的挑戰是在使用cursor.fetchall() 時遇到異常「沒有可從中取得的結果集」。發生這種情況是因為預存程序通常會傳回多個結果集,而cursor.fetchall() 被設計為僅迭代一組結果。

要解決此問題,有必要檢索感興趣的特定結果集。這可以使用cursor.stored_results()方法來完成,該方法傳回結果集產生器。然後可以使用 fetchall() 單獨取得每個結果集。

for result in cursor.stored_results():
    people = result.fetchall()

在某些情況下,您在使用cursor.execute() 時也可能會遇到錯誤「Use cmd_query_iter for statements with multiple query」。出現這種情況是因為連接器錯誤地將過程呼叫解釋為多查詢語句。

要修正此問題,建議在執行多個查詢時明確設定 multi=True 參數。這可確保連接器正確處理此類場景。

cursor.execute("call getperson(1)", multi=True)

透過遵循這些準則,您可以有效地從預存程序中檢索結果並根據需要處理多個結果集。

以上是如何在 Python 中正確檢索 MySQL 預存程序的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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