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

时间:2016-12-07 17:27:24

标签: python mysql sql sqlite

我有一个问题,我需要在sqlite3数据库中更新表中字段的值。

  • takenOut是列

  • 的名称
  • bookID因此它只更新了一条记录

  • newTakenOutEntry是用户输入,将通过UPDATE查询放入数据库

  • bookIDEntry是用户输入,因此UPDATE查询知道更新takeOut字段的记录

我目前的代码是:

updatetakenOut = c.execute("UPDATE bookList SET takenOut = ? WHERE bookID = ?"), (newTakenOutEntry.get(),) , (bookIDEntry.get(),)
conn.commit()

我得到的错误信息是:

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 2, and there are 0 supplied.

我已经在新值的.get()属性后面有一个逗号,所以它应该已经是一个元组了吗?我在网上看到的那些也有这个错误的人是因为他们没有元组中的新值。但是,我仍然收到错误消息,所以我不知道还有什么问题。

1 个答案:

答案 0 :(得分:1)

你需要这样做:

updatetakenOut = c.execute("UPDATE bookList SET takenOut = ? WHERE bookID = ?", (newTakenOutEntry.get(), bookIDEntry.get()))