Python MySQL Elimina da da
Elimina record
Puoi eliminare i record da una tabella esistente utilizzando l'istruzione "DELETE FROM":
Esempio
Elimina qualsiasi record in cui l'indirizzo è "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")
Importante!: Notare la dichiarazione:
mydb.commit()
. È necessario apportare le modifiche, altrimenti non vengono apportate modifiche alla tabella.
Si noti la clausola WHERE nella sintassi DELETE: la clausola WHERE specifica quali record devono essere eliminati. Se ometti la clausola WHERE, tutti i record verranno eliminati!
Impedisci l'iniezione di SQL
È considerata una buona pratica evitare i valori di qualsiasi query, anche nelle istruzioni di eliminazione.
Questo serve a prevenire le iniezioni SQL, che è una tecnica di hacking Web comune per distruggere o utilizzare in modo improprio il database.
Il modulo mysql.connector utilizza il segnaposto %s
per eseguire l'escape dei valori nell'istruzione delete:
Esempio
Esci dai valori usando il %s
metodo del segnaposto:
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")