Utiliser des variables pour exécuter des instructions SQL en Python
P粉731977554
P粉731977554 2023-10-12 15:06:00
0
2
539

J'ai le code Python suivant :

cursor.execute("INSERT INTO table VALUES var1, var2, var3,")

var1是整数,var2var3est une chaîne.

Comment écrire des noms de variables (dans le cadre du texte d'une requête) sans utiliser Python ?

P粉731977554
P粉731977554

répondre à tous (2)
P粉718165540

Différentes implémentations de l'API Python DB autorisent différents espaces réservés, vous devrez donc savoir lequel vous utilisez - probablement (par exemple en utilisant MySQLdb) :

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))

ou (par exemple, en utilisant sqlite3 de la bibliothèque standard Python) :

cursor.execute("INSERT INTO table VALUES (?, ?, ?)", (var1, var2, var3))

ou autre (dansVALUES之后,您可以有(:1, :2, :3)或“命名样式”(:fee, : fie, :fo)(%(fee)s, %(fie)s, %(fo)s),其中您将字典而不是映射作为第二个参数传递给执行)。检查您正在使用的 DB API 模块中的paramstyleconstantes de chaîne et danshttp://www.python.org/dev/peps/pep-0249/Voyez quels sont tous les styles de transmission d'arguments !

    P粉521697419
    cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))

    Notez que les paramètres sont transmis sous forme de tuples,(a, b, c)。如果您传递单个参数,则元组需要以逗号结尾,(a,).

    L'API de base de données échappe et cite correctement les variables. Attention à ne pas utiliser d'opérateurs de formatage de chaîne (%) car

    1. Il ne permet ni évasion ni citation.
    2. Vulnérable aux attaques de formatage de chaîne incontrôlées telles queSQL_injection.
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!