Maison >base de données >tutoriel mysql >Comment insérer en toute sécurité les variables dans les requêtes SQL à l'aide de Python?

Comment insérer en toute sécurité les variables dans les requêtes SQL à l'aide de Python?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-25 15:32:11364parcourir

How to Safely Insert Variables into SQL Queries Using Python?

Insérez la variable dans Python pour insérer des variables dans SQL Query

Lors du traitement des requêtes de base de données dans Python, des variables sont généralement requises dans l'instruction de requête. Cependant, il doit être exploité de manière à prévenir les erreurs de grammaire ou les vulnérabilités de sécurité.

Considérons le code Python suivant:

<code class="language-python">cursor.execute("INSERT INTO table VALUES var1, var2, var3")</code>
Dans ce code,

est un entier, var1 et var2 sont une chaîne. Cependant, lorsque Python essaie d'inclure le nom var3, var1 et var2 dans le cadre du texte de la requête lui-même, il y aura des problèmes, ce qui entraînera une requête invalide. var3

Afin de résoudre ce problème, vous pouvez utiliser le mécanisme de remplacement fourni par l'API de la base de données. Ce qui suit est la méthode de réécriture du code pour utiliser le symbole occupé:

<code class="language-python">cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))</code>
dans ce code amélioré:

    Il représente un espace réservé pour remplir la recharge.
  • %s est un tuple contenant une valeur d'insertion.
  • (var1, var2, var3) En transmettant la valeur en tant que méta-groupe, l'API de la base de données traitera les transferts et références variables nécessaires pour assurer la compatibilité avec la base de données et empêcher les risques de sécurité potentiels.
Veuillez noter que pour un seul paramètre, vous devez avoir un groupe de réglage avec Tail Comma:

De plus, évitez d'utiliser le format de format de chaîne (%) pour insérer des variables, car il peut provoquer des vulnérabilités de sécurité et ne pas le prendre en charge.

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:
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