ホームページ >データベース >mysql チュートリアル >Python を使用して MySQL ストアド プロシージャから結果を取得するにはどうすればよいですか?

Python を使用して MySQL ストアド プロシージャから結果を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-02 01:59:10694ブラウズ

How Can I Retrieve Results from MySQL Stored Procedures Using Python?

Python カーソルを使用したスト​​アド プロシージャからの結果の取得

Python では、mysql を使用して MySQL データベースに接続し、ストアド プロシージャを実行できます。 .コネクタモジュール。ただし、ストアド プロシージャから結果を取得する際に問題が発生する可能性があります。

これを解決するには、ストアド プロシージャの呼び出しに使用されるカーソルに、stored_results() メソッドを使用して結果を取得するように明示的に指示する必要があります。このメソッドは結果セットのイテレータを返します。これにより、ストアド プロシージャが複数の結果セットを返す場合、それらを取得できます。

この例では、ストアド プロシージャ getperson は 1 つの結果セットを返します。次のコードは、その結果を取得する方法を示しています。

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()

このコードでは、ストアド プロシージャがパラメータ 1 で呼び出され、stored_results() メソッドを使用して単一の結果セットを取得します。その後、結果が反復処理されて出力されます。

このソリューションは、「取得する結果セットがありません」エラーや複数の結果セットの不適切な処理など、提供されたコードで発生した問題を解決します。 storage_results() を使用して結果セットを明示的に取得することで、コードは期待どおりにストアド プロシージャ呼び出しの結果にアクセスできます。

以上がPython を使用して MySQL ストアド プロシージャから結果を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。