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 -

本文链接 https://spacepage.top/archives/2020.01.03-python-sqlite3-参数个数错误.html,欢迎转载,转载请注明出处。

友情链接
网站统计
  • 网站已运行:217天
  • 文章总数:66 篇