Ich benutze mysql connector.Python 1.0.9 von der MySQL-Seite heruntergeladen.
Ich habe hier eine Beispiel-Tabelle hier
%Vor%Ich kann eine einzelne SQL-Anweisung wie folgt ausführen.
%Vor%und alles ist gut und Datenbank wird korrekt aktualisiert.
jetzt, wenn ich versuche, die Datenbank mit mehreren Anweisungen wie folgt zu aktualisieren
%Vor%Ich bekomme unter Trackback-Fehler
%Vor%Ich aktualisiere meinen Befehl wie folgt
%Vor%Jetzt bekomme ich keinen Fehler / Traceback. Aber die Datenbank wird nicht aktualisiert.
Kann mir jemand sagen, wo ich falsch liege?
Endlich nach langer Recherche zu Dokumentation und Hilfe. Ich könnte das Problem lösen.
Eine for
Schleife bei cursor.execute
mit multi=True
wurde verwendet. Ich weiß nicht, warum wir uns durchschleifen müssen.
Ohne Schleife hat nur cursor.execute(SQL, multi=True)
keine Änderungen in der Datenbank vorgenommen.
Blick auf die MySQL-Dokumente
Wenn multi auf True gesetzt ist, kann execute () mehrere Anweisungen ausführen, die in der Operation-Zeichenfolge angegeben sind. Es gibt einen Iterator zurück, der die Verarbeitung des Ergebnisses jeder Anweisung ermöglicht. Die Verwendung von Parametern funktioniert in diesem Fall jedoch nicht gut und es ist normalerweise eine gute Idee, jede Anweisung einzeln auszuführen.
Das Setzen von multi = True gibt einen Iterator zurück und wenn Sie nur jede Anweisung durchlaufen wollen, funktioniert die andere angebotene Lösung gut:
%Vor%Tags und Links python mysql database-connection mysql-python