Python mise à jour de la table

Mise à jour de la table

Vous pouvez utiliser l'instruction "UPDATE" pour mettre à jour les enregistrements existants dans la table :

Exemple

Remplacez la valeur de la colonne d'adresse "Valley 345" par "Canyoun 123" :

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) affecté(s)")

Exécuter l'exemple

Important :Veuillez noter l'instruction mydb.commit()Il est nécessaire de le faire, sinon l'expression ne changera pas.

Veuillez noter la clause WHERE de la syntaxe UPDATE : la clause WHERE indique les enregistrements à mettre à jour. Si la clause WHERE est omise, tous les enregistrements seront mis à jour !

Prévenir les injections SQL

Il est une bonne habitude de échapper toute valeur de la requête dans une instruction update.

Ceci est fait pour prévenir les injections SQL, une technique courante des pirates informatiques, qui peut endommager ou abuser de votre base de données.

Le module mysql.connector utilise des placeurs de remplacement %s Pour échapper aux valeurs dans une instruction delete :

Exemple

Utilisez la méthode de remplacement de placeur %s pour échapper aux valeurs :

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "UPDATE customers SET address = %s WHERE address =" %s"
val = ("Valley 345", "Canyon 123")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record(s) affecté(s)")

Exécuter l'exemple