我一辈子都想不通为什么会失败,我知道丑陋的代码,但我只需要将它用于学校项目。
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
编辑:它似乎适用于我的单个字符用户名,但是当我尝试使用 ADMIN 用户名时失败,因此有 5 个绑定(bind)
最佳答案
将参数作为元组传递给 execute()
。替换:
c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user))
与:
c.execute("SELECT * FROM logins WHERE usernames=(?)", (self.user, ))
关于python - sqlite3.ProgrammingError : Incorrect number of bindings supplied. 当前语句使用了1个,提供了5个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33270534/