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 das Festschreiben der Transaktion vor dem Schließen der Verbindung sollte der Code die Datenbank erfolgreich aktualisieren und die Änderungen bei der direkten Abfrage widerspiegeln.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3