【问题标题】:Reading from database with SQLite and Python: Incorrect number of binding supplied使用 SQLite 和 Python 从数据库读取:提供的绑定数量不正确
【发布时间】:2012-04-16 17:05:56
【问题描述】:

我正在使用以下 python 脚本读取数据库:

cur.execute("SELECT * FROM pending where user = ?", (ID))

其中 ID 是某人的名字,在本例中为“Jonathan”。

但是,当我尝试运行此脚本时,我收到错误提示

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/cherrypy/_cprequest.py", line 606, in respond
    cherrypy.response.body = self.handler()
  File "/usr/lib/pymodules/python2.7/cherrypy/_cpdispatch.py", line 25, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "proj1base.py", line 470, in editFriends
    cur.execute("SELECT * FROM pending where user = ?", (ID))
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 8 supplied.

我对 SQLite 很陌生,所以我猜我只是在语法上犯了一个非常愚蠢的错误。但是在网上搜索了一段时间后,我似乎找不到与其他人不同的东西。

任何帮助将不胜感激。或者如果您需要更多代码,请告诉我。

谢谢

【问题讨论】:

    标签: python database sqlite binding


    【解决方案1】:

    您必须为绑定提供一系列值。 ID 是一个字符串,所以它看起来像一个由 8 个值组成的序列。

    您可能认为(ID) 应该是一个包含一个元素的元组,但事实并非如此。括号不是 Python 中的元组制作语法(空元组除外)。逗号是。使用(ID,) 来获取一个包含一个元素的元组。或者,使用列表:[ID]

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 2021-06-16
      • 1970-01-01
      • 2015-12-06
      • 2013-10-28
      相关资源
      最近更新 更多