Python MySQL Löschen von von
Aufzeichnung löschen
Sie können Datensätze aus einer bestehenden Tabelle löschen, indem Sie die Anweisung "DELETE FROM" verwenden:
Beispiel
Löschen Sie alle Datensätze mit der Adresse „Mountain 21“:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor =
mydb.cursor()
sql = "DELETE FROM customers WHERE address =
'Mountain 21'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")
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 DELETE-Syntax: Die WHERE-Klausel gibt an, welche Datensätze gelöscht werden sollen. Wenn Sie die WHERE-Klausel weglassen, werden alle Datensätze gelöscht!
SQL-Injection verhindern
Es wird als bewährte Vorgehensweise angesehen, die Werte jeder Abfrage zu maskieren, auch in Löschanweisungen.
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 = "DELETE FROM customers WHERE address =
%s"
adr = ("Yellow Garden 2", )
mycursor.execute(sql, adr)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")