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!