修复 Python 中的 SQLite 参数替换错误
当基于列表迭代查询数据库中的特定值时,会出现一个常见的陷阱使用“?”参数替换法。虽然旨在防止 SQL 注入,但如果使用不当,此方法可能会导致错误。
在描述的场景中,会发生以下错误:“sqlite3.ProgrammingError:提供的绑定数量不正确。”这表明提供给execute()方法的参数数量与预期数量不匹配。
该错误源于数据库表的初始创建,该表有8列,因此需要8个参数相应的插入或更新查询。但是,当使用“?”时替换方法中,第二个参数应该是仅包含要绑定的值的序列,而不是单个字符串。
要解决此问题,应按如下方式调用execute()方法:
<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>
通过传递一个包含单个元素 ([item]) 的列表作为第二个参数,可以提供正确的绑定数量并避免错误。此外,使用建议的形式与 sqlite3 游标对象的 Python 库参考中概述的建议保持一致。
以上是如何修复 Python 查询数据库时 SQLite 参数替换错误?的详细内容。更多信息请关注PHP中文网其他相关文章!