Heim > Datenbank > MySQL-Tutorial > Warum werden meine Python-MySQL-Updates nicht in der Datenbank angezeigt?

Warum werden meine Python-MySQL-Updates nicht in der Datenbank angezeigt?

Susan Sarandon
Freigeben: 2024-12-06 04:32:10
Original
234 Leute haben es durchsucht

Why Aren't My Python MySQL Updates Reflecting in the Database?

Fehlerbehebung bei MySQL- und Python-Datenbankaktualisierungsproblemen

Beim Versuch, Daten in einer MySQL-Datenbank mit Python zu aktualisieren, können Entwickler auf Situationen stoßen, in denen Änderungen vorgenommen wurden durch Python-Code werden bei direkter Abfrage nicht in der Datenbank widergespiegelt. Dieser Artikel untersucht dieses Problem und bietet eine mögliche Lösung.

Problembeschreibung

Wie von einem Benutzer beschrieben, kann ein Programm, das MySQLdb zum Aktualisieren einer Datenbankzeile verwendet, die Datei nicht speichern ändert sich ständig. Der Code führt eine Aktualisierungsabfrage aus, aber bei der Überprüfung der Datenbank über die Befehlszeilenschnittstelle (CLI) werden die Aktualisierungen nicht beobachtet.

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

Lösung

Die Das Problem ist auf die standardmäßige Transaktionsverarbeitung in MySQLdb zurückzuführen. Standardmäßig deaktiviert MySQLdb die automatische Festschreibung, was bedeutet, dass an der Datenbank vorgenommene Änderungen nicht gespeichert werden, bis eine Festschreibungsoperation explizit ausgeführt wird. Um das Problem zu lösen, sollte der Code vor dem Schließen der Verbindung einen Aufruf von conn.commit() enthalten:

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")
# Commit the changes to the database
conn.commit()

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

Mit conn.commit() werden die Änderungen in die Datenbank übernommen, um sicherzustellen, dass nachfolgende Abfragen nicht ausgeführt werden spiegeln die aktualisierten Werte wider.

Das obige ist der detaillierte Inhalt vonWarum werden meine Python-MySQL-Updates nicht in der Datenbank angezeigt?. 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