Python MySQL verwijderen van door
Record verwijderen
U kunt records uit een bestaande tabel verwijderen door de instructie "DELETE FROM" te gebruiken:
Voorbeeld
Verwijder alle records waarvan het adres "Mountain 21" is:
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")
Belangrijk!: Let op de verklaring:
mydb.commit()
. Het is vereist om de wijzigingen aan te brengen, anders worden er geen wijzigingen in de tabel aangebracht.
Let op de WHERE-component in de DELETE-syntaxis: De WHERE-component geeft aan welke record(s) moeten worden verwijderd. Als u de WHERE-clausule weglaat, worden alle records verwijderd!
SQL-injectie voorkomen
Het wordt als een goede gewoonte beschouwd om te ontsnappen aan de waarden van een query, ook in delete-instructies.
Dit is om SQL-injecties te voorkomen, een veelgebruikte hacktechniek om uw database te vernietigen of te misbruiken.
De module mysql.connector gebruikt de tijdelijke aanduiding %s
om waarden in de delete-instructie te escapen:
Voorbeeld
Escape-waarden met behulp van de placeholder- %s
methode:
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")