Maison >base de données >tutoriel mysql >Comment récupérer les résultats des procédures stockées MySQL en Python ?
Problème :
Tentatives de récupération des résultats d'une procédure stockée MySQL à l'aide de l'outil Le connecteur Python MySQL échoue avec l'erreur "Aucun ensemble de résultats à récupérer."
Stocké Procédure :
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
Code 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()
Cause :
Le connecteur MySQL alloue plusieurs jeux de résultats pour les procédures stockées, même lors du renvoi d'une seule instruction SELECT résultat.
Solution :
Parcourir les ensembles de résultats et récupérer les données de celui approprié :
for result in cursor.stored_results(): people = result.fetchall()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!