Python MySQL Delete From

Slet poster

Du kan bruge "DELETE FROM" sætningen til at slette poster fra eksisterende tabeller:

Eksempel

Slet alle poster med adresse "Mountain 21":

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="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")

Kør Eksempel

Vigtigt:Bemærk sætningen mydb.commit()der skal ændres, ellers vil tabellen ikke ændre sig.

Bemærk DELETE syntaksens WHERE foresætning: WHERE foresætningen angiver hvilke poster, der skal slettes. Hvis WHERE foresætningen udelades, vil alle poster blive slettet!

Forebygg SQL-injektion

Det er også en god vane at escape ethvert værdi, der bruges i en query i delete sætninger.

Dette er for at forhindre SQL-injektion, som er en almindelig nethackteknik, der kan ødelægge eller misbruge din database.

mysql.connector modul bruger placeholders %s For at escape værdier i delete sætninger:

Eksempel

Brug af placeholder %s Metoder til at escape værdier:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="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")

Kør Eksempel