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

Comment récupérer correctement les résultats des procédures stockées MySQL en Python ?

DDD
Libérer: 2024-12-01 04:55:17
original
494 Les gens l'ont consulté

How to Properly Retrieve Results from MySQL Stored Procedures in Python?

Appel de procédures stockées MySQL avec des curseurs Python

Lors de l'utilisation de procédures stockées MySQL dans des applications Python, il est crucial de gérer correctement la récupération des résultats. Bien que cela puisse paraître simple, la récupération des résultats des procédures peut entraîner des erreurs inattendues.

Un défi courant consiste à rencontrer l'exception "Aucun ensemble de résultats à récupérer" lors de l'utilisation de curseur.fetchall(). Cela se produit parce que les procédures stockées renvoient souvent plusieurs ensembles de résultats et que curseur.fetchall() est conçu pour parcourir un seul ensemble.

Pour résoudre ce problème, il est nécessaire de récupérer l'ensemble de résultats spécifique qui vous intéresse. Cela peut être fait en utilisant la méthode curseur.stored_results(), qui renvoie un générateur de jeux de résultats. Chaque ensemble de résultats peut ensuite être récupéré séparément à l'aide de fetchall().

for result in cursor.stored_results():
    people = result.fetchall()
Copier après la connexion

Dans certains scénarios, vous pouvez également rencontrer l'erreur « Utiliser cmd_query_iter pour les instructions avec plusieurs requêtes » lors de l'utilisation de curseur.execute(). Cela se produit car le connecteur interprète par erreur l'appel de procédure comme une instruction de requêtes multiples.

Pour résoudre ce problème, il est recommandé de définir explicitement le paramètre multi=True lors de l'exécution de plusieurs requêtes. Cela garantit que le connecteur gère correctement de tels scénarios.

cursor.execute("call getperson(1)", multi=True)
Copier après la connexion

En suivant ces directives, vous pouvez récupérer efficacement les résultats des procédures stockées et gérer plusieurs ensembles de résultats selon vos besoins.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal