ホームページ >データベース >mysql チュートリアル >Python を使用して MySQL ストアド プロシージャから結果を取得するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。