Heim > Datenbank > MySQL-Tutorial > Warum aktualisiert mein Python-Skript meine MySQL-Datenbank trotz einer Erfolgsmeldung nicht?

Warum aktualisiert mein Python-Skript meine MySQL-Datenbank trotz einer Erfolgsmeldung nicht?

Patricia Arquette
Freigeben: 2024-12-19 09:57:10
Original
808 Leute haben es durchsucht

Why Doesn't My Python Script Update My MySQL Database Despite a Success Message?

MySQL und Python: Anomalie bei der Datenbankaktualisierung

Problem:

Ein Python-Skript kann eine Zeile in einem nicht aktualisieren MySQL-Datenbank, obwohl ein „UPDATE“-Befehl ausgeführt und eine Erfolgsmeldung abgerufen wurde. Bei manueller Abfrage der Datenbank über die CLI bleibt die Zeile jedoch unverändert.

Code Snippet:

import MySQLdb

conn = MySQLdb.connect(host="localhost", user="root", passwd="pass", db="dbname")
cursor = conn.cursor()

cursor.execute("UPDATE compinfo SET Co_num=4 WHERE ID=100")
cursor.execute("SELECT Co_num FROM compinfo WHERE ID=100")
results = cursor.fetchall()

for row in results:
    print row[0]

print "Number of rows updated: %d" % cursor.rowcount

cursor.close()
conn.close()
Nach dem Login kopieren

Ausgabe:

4
Number of rows updated: 1
Nach dem Login kopieren

Beobachtungen:

  • Das Skript führt den Befehl „UPDATE“ aus und meldet ein erfolgreiches Update.
  • Abfragen des Die Datenbank über die CLI zeigt an, dass die Zeile nicht aktualisiert wurde.
  • Das Ausführen des Befehls „UPDATE“ direkt über die CLI aktualisiert die Zeile wie erwartet.

Lösung:

Das Problem hängt wahrscheinlich mit der fehlenden Transaktionsabwicklung zusammen. MySQLdb deaktiviert die automatische Festschreibung standardmäßig, was bedeutet, dass alle Änderungen an der Datenbank erst dann beibehalten werden, wenn explizit eine Festschreibung erfolgt.

Um das Problem zu beheben, fügen Sie die folgende Zeile hinzu, bevor Sie die Verbindung schließen:

conn.commit()
Nach dem Login kopieren

Dadurch werden die Änderungen in die Datenbank übernommen und sichergestellt, dass die Zeile wie vorgesehen aktualisiert wird.

Das obige ist der detaillierte Inhalt vonWarum aktualisiert mein Python-Skript meine MySQL-Datenbank trotz einer Erfolgsmeldung nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage