2016-12-07 39 views
0

sqlite3データベースのテーブルのフィールドの値を更新する必要があるという問題があります。 sqlite3.ProgrammingError:指定された数のバインディングが正しくありません。現在のステートメントは2を使用し、0が指定されています

  • takenOut

  • bookID 1つのレコード

  • newTakenOutEntryがUPDATEによってデータベースに入れられますユーザー入力が、あること、それが唯一のを更新するので、そこにある列の名前ですクエリ

  • bookIDEntryはユーザー入力ですので、UPDATEクエリは、どのレコードがtakenOutフィールドを更新するのかを知っています

私は現在持っているコードは次のとおりです。

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()属性の後にカンマを持っていますだからすでにタプルの権利があるはずですか?私がこのエラーを持っている人からオンラインで見たことは、新しい値がタプルでないことです。しかし、私はまだエラーメッセージが表示されているので、他に何が問題になるかはわかりません。

+0

あなたはexecute' 'の引数としてバインディングを提供する必要があります。 – Goyo

答えて

1

あなたは実行する必要があります。

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

ありがとう!それはそれを修正した – JoeW373

関連する問題

 関連する問題