问题:
使用表名作为参数执行 SQL 查询时,确保 SQL 语法正确性是一个挑战。
解决方案:
psycopg2.sql 模块
根据官方文档,psycopg2 的 sql 模块提供了一种安全的方式来动态生成 SQL 查询。它引入了以下语法:
<code>from psycopg2 import sql cur.execute(sql.SQL("insert into {table} values (%s, %s)") .format(table=sql.Identifier('my_table')), [10, 20])</code>
这种方法确保了正确的 SQL 语法,并消除了注入攻击的风险。
注意: 不应使用 AsIs 方法来表示表名或字段名。而应该使用 sql 模块。
安全警告:
Pycopg2 强烈警告不要使用 Python 字符串连接或字符串参数插值将变量传递给 SQL 查询,并强调了潜在的安全漏洞。
以上是如何在 psycopg2 SQL 查询中安全地传递表名作为参数?的详细内容。更多信息请关注PHP中文网其他相关文章!