ホームページ > データベース > mysql チュートリアル > Python で MySQL ストアド プロシージャから結果を取得する方法

Python で MySQL ストアド プロシージャから結果を取得する方法

Patricia Arquette
リリース: 2024-12-07 01:10:14
オリジナル
619 人が閲覧しました

How to Retrieve Results from MySQL Stored Procedures in Python?

Python でストアド プロシージャから結果を取得する

問題:

Python MySQL コネクタが「取得する結果セットがありません」というエラーで失敗するfrom."

ストアド プロシージャ:

CREATE PROCEDURE `mytestdb`.`getperson` (IN personid INT)
BEGIN
   select person.person_id,
          person.person_fname,
          person.person_mi,
          person.person_lname,
          person.persongender_id,
          person.personjob_id
     from person
    where person.person_id = personid;
END
ログイン後にコピー

Python コード:

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])
people = cursor.fetchall()

for person in people:
    print(person)

cnx.close()
ログイン後にコピー

原因:

MySQL コネクタは単一の SELECT ステートメントの結果を返す場合でも、ストアド プロシージャの複数の結果セット。

解決策:

結果セットを反復処理し、適切な結果セットからデータをフェッチします。

for result in cursor.stored_results():
    people = result.fetchall()
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート