Maison >base de données >tutoriel mysql >Comment récupérer des ensembles de résultats à partir de procédures stockées MySQL en Python ?

Comment récupérer des ensembles de résultats à partir de procédures stockées MySQL en Python ?

DDD
DDDoriginal
2024-12-04 05:22:15842parcourir

How to Retrieve Result Sets from MySQL Stored Procedures in Python?

Récupération des résultats des procédures stockées MySQL à l'aide de Python

Malgré un appel réussi à une procédure stockée MySQL via Python, une erreur se produit lors de la tentative pour récupérer les résultats en utilisant curseur.fetchall(). Ce message d'erreur, "mysql.connector.errors.InterfaceError: No result set to fetch from", indique que l'ensemble de résultats attendu n'est pas disponible.

Pour résoudre ce problème, envisagez d'utiliser le curseur.stored_results() méthode à la place. Cette méthode récupère tous les jeux de résultats disponibles à partir de la procédure stockée. Dans ce cas, il ne devrait y avoir qu'un seul ensemble de résultats, qui peut être attribué à une variable et ensuite itéré pour obtenir les données souhaitées.

Voici un extrait de code modifié qui démontre l'utilisation de curseur.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()

Cette approche récupère avec succès les résultats de la procédure stockée et les parcourt pour afficher les détails de la personne. Notez que les arguments cmd_query_iter et multi ne sont pas nécessaires puisque nous n'exécutons qu'une seule requête.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn