Python-MySQL -Update-Tabelle
Tabelle aktualisieren
Sie können vorhandene Datensätze in einer Tabelle aktualisieren, indem Sie die "UPDATE"-Anweisung verwenden:
Beispiel
Überschreiben Sie die Adressspalte von „Valley 345“ in „Canyon 123“:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor =
mydb.cursor()
sql = "UPDATE customers SET address = 'Canyon 123'
WHERE address = 'Valley 345'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) affected")
Wichtig!: Beachten Sie die Anweisung:
mydb.commit()
. Es ist erforderlich, die Änderungen vorzunehmen, ansonsten werden keine Änderungen an der Tabelle vorgenommen.
Beachten Sie die WHERE-Klausel in der UPDATE-Syntax: Die WHERE-Klausel gibt an, welcher Datensatz oder welche Datensätze aktualisiert werden sollen. Wenn Sie die WHERE-Klausel weglassen, werden alle Datensätze aktualisiert!
SQL-Injection verhindern
Es wird als bewährte Vorgehensweise angesehen, die Werte jeder Abfrage zu maskieren, auch in Update-Anweisungen.
Dies dient dazu, SQL-Injections zu verhindern, bei denen es sich um eine gängige Web-Hacking-Technik handelt, mit der Ihre Datenbank zerstört oder missbraucht wird.
Das Modul mysql.connector verwendet den Platzhalter %s
, um Werte in der Löschanweisung zu maskieren:
Beispiel
Escape-Werte mit der Platzhaltermethode %s
:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "UPDATE customers SET address = %s
WHERE address = %s"
val = ("Valley 345", "Canyon 123")
mycursor.execute(sql,
val)
mydb.commit()
print(mycursor.rowcount, "record(s)
affected")