SQLite表名参数

iezvtpos  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(173)

我正在尝试用参数替换我的一些字符串插入。因此,我有以下代码来执行查询:

cursor.execute("DELETE FROM %s WHERE COL=%s" % ("tablename","column"))

我可以把它换成

cursor.execute("DELETE FROM tablename WHERE COL=?" , ("column"))

但我希望我的表名在一个变量中。如何防止SQL注入插入表的变量?

kr98yfug

kr98yfug1#

如果您的目标是确保变量是有效表名称,可以使用以下命令获取表名列表
SELECT name FROM sqlite_master WHERE type='table'
然后检查配置文件中的变量是否与其中一个表匹配。这就避免了硬编码表的列表。

相关问题