Maison > base de données > tutoriel mysql > Comment puis-je transmettre en toute sécurité un nom de table en tant que paramètre dans psycopg2 ?

Comment puis-je transmettre en toute sécurité un nom de table en tant que paramètre dans psycopg2 ?

Linda Hamilton
Libérer: 2025-01-12 11:06:42
original
913 Les gens l'ont consulté

How Can I Safely Pass a Table Name as a Parameter in psycopg2?

Utilisez psycopg2 pour transmettre en toute sécurité les paramètres de nom de table

Dans psycopg2, la création de requêtes avec des paramètres dynamiques peut causer des problèmes, comme le montre le code fourni. Il est fortement recommandé de ne pas utiliser la concaténation de chaînes dans le code donné.

Utilisation du module SQL psycopg2

Psycopg2 apporte une solution avec son module SQL introduit en version 2.7. Ce module permet de générer dynamiquement des requêtes incluant les paramètres de nom de table. Sa syntaxe est la suivante :

<code>from psycopg2 import sql

# 示例:使用动态表名插入数据
cur.execute(
    sql.SQL("insert into {table} values (%s, %s)")
        .format(table=sql.Identifier('my_table')),
    [10, 20])</code>
Copier après la connexion

Importance d'un paramétrage correct

Il est important de noter qu'il est préférable d'utiliser le module SQL de psycopg2 plutôt que la manipulation de chaînes Python ou l'interpolation de paramètres de chaîne. La documentation met explicitement en garde contre l'utilisation de ces méthodes car elles peuvent introduire des vulnérabilités et compromettre l'intégrité de la base de données.

Pour plus d'informations sur le module SQL, veuillez vous référer à la documentation officielle : https://www.php.cn/link/9a0f86604fa1dc1686a0cad86a808a5c:

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