当前位置: 代码迷 >> python >> sqlite3.ProgrammingError:提供的绑定数量不正确。 当前语句使用1,并且提供了5个
  详细解决方案

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

热度:28   发布时间:2023-06-13 15:13:27.0

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

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个绑定时它失败了

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

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

有:

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