Python MySQL Supprimer de par
Supprimer l'enregistrement
Vous pouvez supprimer des enregistrements d'une table existante en utilisant l'instruction "DELETE FROM":
Exemple
Supprimez tout enregistrement dont l'adresse est "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")
Important ! : Notez la déclaration :
mydb.commit()
. Il est nécessaire d'apporter les modifications, sinon aucune modification n'est apportée à la table.
Notez la clause WHERE dans la syntaxe DELETE : La clause WHERE spécifie le ou les enregistrements à supprimer. Si vous omettez la clause WHERE, tous les enregistrements seront supprimés !
Empêcher l'injection SQL
Il est considéré comme une bonne pratique d'échapper les valeurs de toute requête, également dans les instructions de suppression.
Cela permet d'éviter les injections SQL, qui est une technique de piratage Web courante pour détruire ou abuser de votre base de données.
Le module mysql.connector utilise l'espace réservé %s
pour échapper les valeurs dans l'instruction delete :
Exemple
Échappez les valeurs à l'aide de la %s
méthode d'espace réservé :
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")