我正在使用以下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].
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。