SQLite 参数替换问题
在 Python 2.5 中使用 SQLite3 时,尝试迭代列表并从中检索数据时会出现一个常见问题一个数据库。使用建议的“?”作为 SQL 注入预防措施的参数通常会导致有关绑定数量的错误。
经过调查,很明显该错误源于数据库表的初始创建。创建语句,如:
CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT);
注册八个绑定,即使在查询期间只使用一个参数。
要解决此问题,请修改代码以使用序列作为 Cursor.execute() 方法的第二个参数:
self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])
此修改确保向方法提供序列,解决对绑定数量的混淆。
参考 SQLite3 游标对象文档可以提供有关此主题的进一步指导。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3