使用SQLite和Python从数据库读取:提供的绑定数量不正确
我使用以下python脚本读取数据库:使用SQLite和Python从数据库读取:提供的绑定数量不正确,python,database,sqlite,binding,Python,Database,Sqlite,Binding,我使用以下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
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非常陌生,所以我猜我只是在语法上犯了一个非常愚蠢的错误。然而,在网上搜索了一段时间后,我似乎找不到与其他人不同的东西
任何帮助都将不胜感激。或者如果你需要更多的代码,请让我知道
谢谢您必须为绑定提供一系列值
ID
是一个字符串,因此它看起来像一个由8个值组成的序列
您可能认为(ID)
应该是一个包含一个元素的元组,但事实并非如此。括号不是Python中的元组生成语法(空元组除外)。逗号是。使用(ID,)
获得一个包含一个元素的元组。或者,使用列表:[ID]