[OK]をので、基本的に、私はインスタンス変数(標準およびLVL)私は今、私は基本的に問題を知っているSQLite3アップデートでインスタンス変数を使用していますか?
sqlite3.OperationalError: no such column: typ
を取得していますエラーとして
#Set variables
typ = 'Test'
lvl = 6
#Print Databse
print("\nHere's a listing of all the records in the table:\n")
for row in cursor.execute("SELECT rowid, * FROM fieldmap ORDER BY rowid"):
print(row)
#Update Info
sql = """
UPDATE fieldmap
SET buildtype = typ, buildlevel = lvl
WHERE rowid = 11
"""
cursor.execute(sql)
#Print Databse
print("\nHere's a listing of all the records in the table:\n")
for row in cursor.execute("SELECT rowid, * FROM fieldmap ORDER BY rowid"):
print(row)
で既存のSQLite3のデータベースを更新しようとしています私の変数は誤った構文で挿入されていますが、私の人生は正しいものを見つけることができません。すぐに私はそれがエラーをスロー変数に切り替えるよう
sql = """
UPDATE fieldmap
SET buildtype = 'house', buildlevel = 3
WHERE rowid = 11
"""
しかし:それはこのようにうまく文字列とint型で動作します。
申し訳ありませんが、私は見てみましょう! – Syntic
**決してデータベースに渡されるSQLコマンドで '%s'または' str.format'を使用しないでください。それはSQLインジェクションになりがちです。 – aim100k
@ aim100kはい、わかっています。そのため、ハードコーディングの代わりにORMを使用しています。しかし、注射について大部分を気にしている人は、SQLAlchemyを使用する以外に、独自のSQL ORMを実行します。 – dotslash