Maison > développement back-end > Tutoriel Python > Comment puis-je utiliser en toute sécurité des variables dans les requêtes SQL dans Python ?

Comment puis-je utiliser en toute sécurité des variables dans les requêtes SQL dans Python ?

Linda Hamilton
Libérer: 2024-12-23 22:00:16
original
397 Les gens l'ont consulté

How Can I Safely Use Variables in SQL Queries Within Python?

Utilisation de variables dans les instructions SQL en Python

Lorsque vous traitez des instructions SQL en Python, vous devrez peut-être incorporer des variables dans vos requêtes. Pour garantir l'exécution correcte de ces requêtes, il est crucial d'éviter d'inclure des noms de variables dans le texte SQL lui-même.

Exemple de scénario :

Considérez le code suivant :

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

où var1 est un entier et var2 et var3 sont des chaînes. Cette approche entraînera une erreur car Python interprétera les noms de variables dans le cadre de la requête, conduisant à une instruction SQL non valide.

Solution :

Pour résoudre ce problème , vous devez utiliser des espaces réservés dans votre instruction SQL et transmettre les valeurs des variables sous forme de tuple à l'aide de la méthodeexecute(). Voici le code corrigé :

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

Dans cet exemple, les espaces réservés %s représentent les valeurs des variables et le tuple (var1, var2, var3) contient les valeurs réelles qui doivent être insérées dans la base de données.

Remarque : Il est essentiel d'utiliser un tuple pour passer plusieurs paramètres. Si vous devez transmettre un seul paramètre, vous devez toujours utiliser un tuple avec une virgule finale :

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

Avantages :

L'utilisation d'espaces réservés et de tuples offre plusieurs avantages :

  • Échappement et citation appropriés :Le L'API de base de données gère correctement l'échappement et la citation des variables, garantissant ainsi que vos données sont sécurisées contre l'injection SQL et d'autres vulnérabilités.
  • Évitement du formatage de chaîne : S'appuyer sur l'opérateur de formatage de chaîne (%) peut entraîner des risques de sécurité et des attaques de formatage de chaîne incontrôlées.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal