Python を使用した MySQL ストアド プロシージャからの結果の取得
Python 経由で MySQL ストアド プロシージャの呼び出しに成功したにもかかわらず、試行するとエラーが発生します結果を取得するには、cursor.fetchall() を使用します。このエラー メッセージ「mysql.connector.errors.InterfaceError: No result set to fetch from」は、予期した結果セットが利用できないことを示します。
この問題を解決するには、cursor.stored_results() の使用を検討してください。代わりにメソッドを使用します。このメソッドは、ストアド プロシージャから利用可能な結果セットを取得します。この場合、結果セットは 1 つだけである必要があり、これを変数に割り当て、その後反復処理して目的のデータを取得できます。
これは、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()
このアプローチは、ストアド プロシージャから結果を正常に取得し、それを反復処理して個人の詳細を表示します。単一のクエリのみを実行するため、cmd_query_iter および multi 引数は必要ないことに注意してください。
以上がPython で MySQL ストアド プロシージャから結果セットを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。