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

2024-06-25 05:56:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我一辈子都搞不懂为什么会失败,我知道这些代码很难看,但我只需要把它们放在学校的项目上。

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

编辑:它似乎适用于我的单字符用户名,但当我尝试管理员用户名时失败,因此5个绑定


Tags: 代码fromselfexecutewhereselect用户名list
1条回答
网友
1楼 · 发布于 2024-06-25 05:56:32

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

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

使用:

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

相关问题 更多 >