【问题标题】:sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 5 suppliedsqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用 1,提供了 5 个
【发布时间】:2016-01-21 02:42:11
【问题描述】:

我一辈子都想不通为什么这会失败,我知道丑陋的代码,但我只需要将它用于学校项目。

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 个绑定

【问题讨论】:

    标签: python sqlite


    【解决方案1】:

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

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

    与:

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

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 2020-10-15
      • 1970-01-01
      相关资源
      最近更新 更多