Update Table | Mise à jour de données avec Python – MySQL
La mise à jour des données est l’une des tâches les plus importantes lorsque vous travaillez avec une base de données. Dans ce tutoriel, nous allons découvrir comment utiliser l’instruction MySQL UPDATE avec Python pour mettre à jour les données d’une table.
L’instruction UPDATE modifie les données existantes dans une table.
Exemple:
L’exemple suivant modifie la colonne « name » de la table « person » de ‘Alex’ à ‘Alexander’
# -*- coding: utf-8 -*- import mysql.connector #connexion au base de données db = mysql.connector.connect( host = "localhost", user = "root", password = "", database = "my_db" ) #créer un curseur de base de données pour effectuer des opérations SQL cur = db.cursor() sql = "UPDATE person SET name = 'Alexander' WHERE name = 'Alex'" #exécuter le curseur avec la méthode execute() et transmis la requête SQL cur.execute(sql) #valider la transaction db.commit() #afficher le nombre de lignes modifiées print(cur.rowcount, " lignes modifiées")
Sortie:
2 lignes modifiées
Empêcher l’injection SQL
Lorsque des valeurs de requête sont fournies par l’utilisateur, vous devez échapper les valeurs.
Il s’agit d’empêcher les injections SQL, qui est une technique de piratage Web courante pour détruire ou abuser votre base de données.
Le module mysql.connector a des méthodes pour échapper aux valeurs de requête.
Dans l’exemple suivant nous allons échapper les valeurs de requête à l’aide de l’opérateur %s:
# -*- coding: utf-8 -*- import mysql.connector #connexion au base de données db = mysql.connector.connect( host = "localhost", user = "root", password = "", database = "my_db" ) #créer un curseur de base de données pour effectuer des opérations SQL cur = db.cursor() sql = "UPDATE person SET name = %s WHERE name = %s" value = ("Alexander", "Alex") #exécuter le curseur avec la méthode execute() et transmis la requête SQL cur.execute(sql, value) #valider la transaction db.commit() #afficher le nombre de lignes modifiées print(cur.rowcount, " lignes modifiées")
Sortie:
2 lignes modifiées