次のSQL文を実行するとエラーが発生しますか?PythonでSQLite3 UPDATEエラーが発生しました
key = 'field_a'
value = '01/01/2011'
#self.testac = '010101010'
self.qry.execute('''UPDATE data_base SET ?=? WHERE atnumber = ?''',(key, value, self.testac))
self.qry.commit()
キーと値は、ユーザーが編集したいフィールドに基づいて動的に生成されるため、SETステートメントには?=?
アイデア?
ありがとうございます!
あなたは混在させることはできます '?'と文字列の置換?何かのように:( '' 'UPDATE data_base SET%s =?WHERE atnumber =?' ''、(key、value、self.testac)この場合、すべての変数に文字列書式を使用する方が良いでしょう?ありがとう! –
Pythonは文字列書式にprintf形式の構文( '%'演算子を使用)またはWindows形式の拡張可能な構文( 'format()'メソッドを使用)を使用します。 (SQLiteのクエリ構文と衝突するかもしれませんが、あなたの例では衝突しないかもしれません) – millimoose
@ LanceCollins私は、私が念頭に置いた例を使って答えを更新しました。私はprintf形式の書式を使用していますそれに慣れていますが、新しいコードで新しいスタイルの書式を使用することをお勧めします。 – millimoose