Problem: Automatische Datenbankaktualisierungen treten bei MySQL und Python nicht auf
Beim Versuch, eine Zeile in einer MySQL-Datenbank über Python-Code zu aktualisieren, wird die Die Datenbank spiegelt die Änderungen nicht automatisch wider. Bei einer direkten Abfrage der Datenbank wird deutlich, dass die Aktualisierung nicht stattgefunden hat.
Mögliche Lösung
Das Problem kann darauf zurückzuführen sein, dass die Transaktion nicht ordnungsgemäß ausgeführt wurde. MySQLdb deaktiviert Autocommit standardmäßig. Das Hinzufügen von conn.commit() vor dem Schließen der Verbindung würde sicherstellen, dass die Änderungen dauerhaft in der Datenbank gespeichert werden.
Geänderter Code
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") conn.commit() # Commit the changes to the database 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()
Durch vorheriges Festschreiben der Transaktion Wenn Sie die Verbindung schließen, sollte der Code die Datenbank erfolgreich aktualisieren und die Änderungen bei der direkten Abfrage widerspiegeln.
Das obige ist der detaillierte Inhalt vonWarum werden meine Python-MySQL-Datenbankaktualisierungen nicht angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!