首页 文章

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

提问于
浏览
3

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

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 回答

  • 13

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

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

    有:

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

相关问题