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

Sam*_*bie 3 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)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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.
Run Code Online (Sandbox Code Playgroud)

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

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

ale*_*cxe 16

将参数传递execute()给元组.更换:

c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user))
Run Code Online (Sandbox Code Playgroud)

有:

c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user, ))
Run Code Online (Sandbox Code Playgroud)