我正在使用以下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的新手,所以我猜我在语法上犯了一个非常愚蠢的错误.然而,在网上搜索了一段时间之后,我似乎找不到与其他人不同的东西.
任何帮助将非常感激.或者如果您需要更多代码,请告诉我.
谢谢
解决方法:
您必须为绑定提供一系列值. ID是一个字符串,因此它看起来像一个8个值的序列.
您可能认为(ID)应该是具有一个元素的元组,但事实并非如此.括号不是Python中的元组制作语法(空元组除外).逗号是.使用(ID,)代替获得一个元素的元组.或者,使用列表:[ID].
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!