Maison  >  Article  >  base de données  >  Pourquoi ma procédure stockée Python MySQL génère-t-elle une erreur « Commandes désynchronisées » et comment puis-je la corriger ?

Pourquoi ma procédure stockée Python MySQL génère-t-elle une erreur « Commandes désynchronisées » et comment puis-je la corriger ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-20 03:40:01344parcourir

Why Does My Python MySQL Stored Procedure Throw a

Erreur : "Commandes désynchronisées" dans la procédure stockée Python-MySQL

Lors de la tentative d'exécution de plusieurs instructions dans une procédure stockée MySQL appelée à partir de Python, vous pouvez rencontrer l'erreur « commandes désynchronisées ; vous ne pouvez pas exécuter cette commande maintenant ». Ce problème survient généralement lors de l'exécution d'une deuxième instruction après avoir appelé une procédure stockée.

Résolution

Pour résoudre cette erreur, il est nécessaire de fermer le curseur après avoir appelé la procédure stockée. procédure et ouvrez-en une nouvelle avant d’exécuter les instructions suivantes. Cela rompt la connexion entre le curseur et la procédure stockée, vous permettant d'effectuer d'autres opérations sans conflits.

Voici un bloc de code mis à jour qui intègre cette solution :

cursor.callproc('my_mysql_procedure', [some_id,])
result = cursor.fetchall()
for r in result:
    do something

cursor.close()  # Close the cursor after stored procedure execution

cursor = connection.cursor()  # Open a new cursor
cursor.execute("select * from some_table")
result = cursor.fetchall()

En fermant le curseur et en le rouvrant immédiatement après avoir récupéré les résultats de la procédure stockée, vous pouvez effectivement réinitialiser l'état du curseur et activer l'exécution d'instructions supplémentaires sans déclencher l'erreur « commandes désynchronisées ».

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