python - 在 Python 中使用 SQLite 传递安全查询参数
问题描述
我正在开发一个使用 HTML 文本输入从 SQLite 数据库中检索数据的项目。这个想法是这样的:用户键入代表产品编号的字符串,然后我在我的数据库中查找该字符串。
我已尝试按照本教程中的建议使我的查询对 SQL 注入安全,因为数据不是来自我。
cursor.execute("SELECT product_number FROM price_history WHERE product_number = %s';", (user_input, ))
但是,当我尝试执行我的代码时,我得到:
sqlite3.OperationalError: near "%": syntax error
解决方案
'
后面还有一个%s
。
阅读sqlite3 上 python 文档的第一段,其中显示了使用占位符的正确方法。
cursor.execute("SELECT product_number FROM price_history WHERE product_number = (?)", (user_input, ))
应该管用。
推荐阅读
- arrays - Delphi 数组与对象
- javascript - 正确测试 Vue 组件中的事件处理程序
- javascript - Vue JS:从输入中重置/清除值
- java - 如何在多个微服务中管理安全上下文
- java - 如何使 IntellijIDEA 与 Java 12 一起工作
- webpack-4 - 为什么在添加 webpack 配置的解析选项后,我的 webpack 构建工作如此奇怪?
- php - 不使用 $_GET 在表单上显示错误
- r - 创建具有二项式响应和分类/连续变量混合的 GLMM
- r - 为 13K pdf 文档运行 for 循环时出现空间不足错误
- c# - 从对象转换到 T 没有转换运算符 (T) 实例