首页  >  文章  >  后端开发  >  如何修复 Python 查询数据库时 SQLite 参数替换错误?

如何修复 Python 查询数据库时 SQLite 参数替换错误?

Barbara Streisand
Barbara Streisand原创
2024-10-19 15:25:02374浏览

How to Fix SQLite Parameter Substitution Error in Python When Querying a Database?

修复 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn