我不能为我的生活找到原因,为什么这是失败的,我知道的丑陋代码,但我只需要把它用于学校项目。
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个绑定时它失败
答案 0 :(得分:14)
将参数传递给execute()
作为元组。替换:
c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user))
使用:
c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user, ))