python 中 sqlite 数据绑定个数错误

  • python,sqlite,数据绑定

在 Python 中操作 sqlite ,我们会通过编写 sql 语句,然后绑定数据。如果我们编写的 sql 里包含的 ? 个数和我们提供的参数个数不一致的时候,就会报 Incorrect number of bindings supplied 错误。

个数错误我们一般比较容易发现,还有一种情况比较特殊,当我们只有一个 ? 的时候,我们的参数传递如果写成这样:

id = 1
conn.execute('select * from table where _id = ?',id)

这样写也是会报错的,正确的写法是

id = 1
conn.execute('select * from table wehre _id=?',(id,))

因为这里期望传递的是一个元组,(id,) 这样表示一个元组,而 (id) 也是不行的。

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and t

Traceback (most recent call last):
    File "./main.py", line 56, in <module>
    update_all_funds_to_tables()
    File "./main.py", line 52, in update_all_funds_to_tables
    update_or_insert_fund_to_index(fund,funds['display_name'][fund],funds['name'][fund],funds['start_date'][fund],funds['end_date'][fund],funds['type'][fund])
File "./main.py", line 39, in update_or_insert_fund_to_index
''',fund)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 11 supplied.

相关文章

- EOF -

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: python 中 sqlite 数据绑定个数错误
本文地址: https://binkery.com/archives/2020.01.03-python-sqlite3-参数个数错误.html