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!