Message d'erreur : "Commandes désynchronisées" en Python avec MySQL
Lors de l'exécution d'une procédure stockée depuis Python via Django, les utilisateurs peuvent rencontrer le message d'erreur "commandes désynchronisées ; vous ne pouvez pas exécuter cette commande maintenant". Ce problème survient lors de la tentative d'exécution d'instructions ultérieures après l'appel d'une procédure, empêchant ainsi la validation réussie d'une transaction.
Le problème n'est pas limité aux procédures stockées complexes, mais peut également survenir avec des procédures simplifiées. Dans l'exemple fourni, l'appel de « cursor.callproc() » suivi de « cursor.fetchall() » et « cursor.execute() » déclenche l'erreur.
Solution :
Pour résoudre ce problème, l'objet curseur doit être fermé et rouvert avant d'exécuter davantage déclarations :
cursor.close() cursor = connection.cursor()
En fermant le curseur et en le rouvrant, l'état de la connexion est réinitialisé, permettant aux commandes suivantes de s'exécuter sans l'erreur « commandes désynchronisées ». Notez que le jeu de résultats récupéré avec 'fetchall()' reste accessible après la fermeture du curseur.
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!