Fehlermeldung: „Befehle nicht synchron“ in Python mit MySQL
Beim Ausführen einer gespeicherten Prozedur aus Python über Django kann es zu Problemen kommen die Fehlermeldung „Befehle nicht synchron; Sie können diesen Befehl jetzt nicht ausführen.“ Dieses Problem tritt auf, wenn versucht wird, nach dem Aufruf einer Prozedur nachfolgende Anweisungen auszuführen, wodurch eine erfolgreiche Transaktionsfestschreibung verhindert wird.
Das Problem ist nicht auf komplexe gespeicherte Prozeduren beschränkt, sondern kann auch bei vereinfachten Prozeduren auftreten. Im bereitgestellten Beispiel löst der Aufruf von „cursor.callproc()“, gefolgt von „cursor.fetchall()“ und „cursor.execute()“ den Fehler aus.
Lösung:
Um dieses Problem zu beheben, muss das Cursorobjekt geschlossen und erneut geöffnet werden, bevor weitere Aktionen ausgeführt werden können Anweisungen:
cursor.close() cursor = connection.cursor()
Durch Schließen und erneutes Öffnen des Cursors wird der Verbindungsstatus zurückgesetzt, sodass nachfolgende Befehle ohne den Fehler „Befehle nicht synchron“ ausgeführt werden können. Beachten Sie, dass die mit „fetchall()“ abgerufene Ergebnismenge nach dem Schließen des Cursors weiterhin zugänglich bleibt.
Das obige ist der detaillierte Inhalt vonWarum kommt es bei Python-MySQL-Interaktionen zu „nicht synchronen Befehlen' und wie kann das behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!