首页 > 解决方案 > 在 Python 中使用 SQLite 传递安全查询参数

问题描述

我正在开发一个使用 HTML 文本输入从 SQLite 数据库中检索数据的项目。这个想法是这样的:用户键入代表产品编号的字符串,然后我在我的数据库中查找该字符串。

我已尝试按照本教程中的建议使我的查询对 SQL 注入安全,因为数据不是来自我。

cursor.execute("SELECT product_number FROM price_history WHERE product_number = %s';", (user_input, ))

但是,当我尝试执行我的代码时,我得到:

sqlite3.OperationalError: near "%": syntax error

标签: pythonsqlite

解决方案


'后面还有一个%s

阅读sqlite3 上 python 文档的第一段,其中显示了使用占位符的正确方法。

cursor.execute("SELECT product_number FROM price_history WHERE product_number = (?)", (user_input, ))应该管用。


推荐阅读