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