Récupération des résultats des procédures stockées à l'aide du curseur Python
En Python, la connexion à une base de données MySQL et l'exécution de procédures stockées peuvent être réalisées à l'aide du mysql .module connecteur. Cependant, la récupération des résultats des procédures stockées peut présenter des difficultés.
Pour résoudre ce problème, le curseur utilisé pour appeler la procédure stockée doit recevoir explicitement l'instruction de récupérer les résultats à l'aide de la méthode store_results(). Cette méthode renvoie un itérateur d'ensembles de résultats, ce qui permet de récupérer plusieurs ensembles de résultats si la procédure stockée les renvoie.
Dans l'exemple fourni, la procédure stockée getperson renvoie un seul ensemble de résultats. Le code suivant montre comment récupérer ses résultats :
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()
Dans ce code, la procédure stockée est appelée avec un paramètre de 1 et la méthode store_results() est utilisée pour récupérer l'ensemble de résultats unique. Les résultats sont ensuite itérés et imprimés.
Cette solution résout les problèmes rencontrés dans le code fourni, tels que l'erreur « Aucun ensemble de résultats à récupérer » et la mauvaise gestion de plusieurs ensembles de résultats. En récupérant explicitement le jeu de résultats à l'aide de store_results(), le code peut accéder aux résultats de l'appel de procédure stockée comme prévu.
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!