>데이터 베이스 >MySQL 튜토리얼 >Python에서 MySQL 저장 프로시저의 결과를 검색하는 방법은 무엇입니까?

Python에서 MySQL 저장 프로시저의 결과를 검색하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-07 01:10:14607검색

How to Retrieve Results from MySQL Stored Procedures in Python?

Python의 저장 프로시저에서 결과 검색

문제:

다음을 사용하여 MySQL 저장 프로시저에서 결과를 검색하려고 시도합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.