Maison > base de données > tutoriel mysql > Comment exécuter une requête SQL paramétrée stockée dans une variable en Python ?

Comment exécuter une requête SQL paramétrée stockée dans une variable en Python ?

DDD
Libérer: 2025-01-12 06:49:43
original
959 Les gens l'ont consulté

How to Execute a Parameterized SQL Query Stored in a Variable in Python?

Exécuter des requêtes SQL paramétrées stockées dans des variables en Python

Lorsque vous traitez des requêtes SQL en Python, il est crucial d'utiliser des requêtes paramétrées pour empêcher l'injection SQL. Cela implique de remplacer les espaces réservés aux paramètres (par exemple, « %s ») par des variables contenant des valeurs réelles.

Une question courante est de savoir s'il est possible de stocker une requête SQL paramétrée dans une variable puis de l'exécuter. Explorons la syntaxe et comment y parvenir.

Question

Considérez le code Python suivant :

sql = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3
cursor.execute(sql)
Copier après la connexion

Malheureusement, ce code génère une erreur car cursor.execute() accepte jusqu'à trois paramètres : la chaîne de requête et les paramètres facultatifs. Dans cet exemple, nous avons quatre paramètres, représentés par le tuple (sql, var1, var2, var3).

Solution

Il existe deux manières d'exécuter des requêtes SQL paramétrées à partir de variables :

Méthode 1 : Développer les paramètres

Nous pouvons étendre les paramètres du tuple contenant la requête et les paramètres en cursor.execute() :

sql_and_params = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3
cursor.execute(*sql_and_params)
Copier après la connexion

Cela étend le tuple à quatre paramètres, mais cela peut sembler maladroit.

Méthode 2 : requête et paramètres séparés

Pour plus de clarté, il est préférable de séparer la requête SQL et les paramètres en deux variables :

sql = "INSERT INTO table VALUES (%s, %s, %s)"
args = (var1, var2, var3)
cursor.execute(sql, args)
Copier après la connexion

Cette approche est plus concise et plus facile à lire et à maintenir.

Conclusion

En résumé, lors de l'exécution d'une requête SQL paramétrée à partir de variables en Python, vous devez développer les paramètres ou séparer la requête et les paramètres en différentes variables. La deuxième méthode est généralement recommandée car elle est plus simple et plus directe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal