sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,并且提供了5个

时间:2015-10-21 22:46:38

标签: python sqlite

我不能为我的生活找到原因,为什么这是失败的,我知道的丑陋代码,但我只需要把它用于学校项目。

def changeusername(self,i):
    user="self.user=self.username"+str(i)+".get()"
    exec(user)
    print(self.user)
    record1=list(c.execute("SELECT * FROM logins WHERE usernames=(?)",(self.user)))
    print(record1)

我收到此错误:

line 428, in changeusername
record1=list(c.execute("SELECT * FROM logins WHERE usernames=(?)",(self.user)))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 5 supplied.

我可能错过了一些非常简单的东西,但是嘿:P

编辑:它似乎适用于我的单个char用户名,但是当我尝试ADMIN用户名因此5个绑定时它失败

1 个答案:

答案 0 :(得分:14)

将参数传递给execute()作为元组。替换:

c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user))

使用:

c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user, ))