首页 > 解决方案 > 我可以根据用户输入在表中执行 SQL 查询吗?

问题描述

所以,我是 Stackoverflow 的新手,我希望我能写好这个问题。所以我试图根据python中的用户输入从我的数据库中选择一个表(包含5个表)。但是我不太确定该怎么做。这是代码:

user_input = "table1"
db.execute("SELECT number FROM (?) WHERE person = 1;")

如果可能的话,我正在寻找一种方法。无论如何,任何帮助将不胜感激。

标签: pythonsqlite

解决方案


好吧,为了禁止 SQL 注入,经过一些验证后,最简单的方法是使用用户输入格式化查询字符串。

db.execute ("SELECT * FROM MyTable WHERE person = {};".format(user_input))

的内容user_input将放在大括号中。

不过,您如何获得用户输入还不是很清楚。


推荐阅读