python - SQLite 表名参数

标签 python sqlite

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

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

我可以把它换成

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

但我希望我的表名在一个变量中。如何保护表变量的插入免受 sql 注入(inject)?

最佳答案

如果您的目标是确保变量是有效表的名称,您可以使用以下命令获取表名列表

SELECT name FROM sqlite_master WHERE type='table'

然后检查配置文件中的变量是否与其中一个表匹配。这避免了必须对表格列表进行硬编码。

关于python - SQLite 表名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31656232/

相关文章:

python - 有人可以解释一下这个简单的Python代码吗?

python - 我如何计算停顿预测中的短语

android - 来自 sqlite onListItemClick NullPointerException

sql - 帮助在 SQLite 中按日期排序结果

sql - 在 SQLite 中获取数字的 ceil 值

android - sqlite 表中始终返回 null 值

python - 我正在尝试搜索一个项目,但程序给出了错误的结果

python - 需要 pexpect 模块的帮助 - 脚本找不到匹配项

c# - 无论我输入什么数字,我的文本框总是与 '0' 进行比较

python - jupyter 笔记本,导入错误 : cannot import name 'Type'