SQLiteクエリ内に変数を配置しようとしていますが、ドキュメントを読んでいます。ここで似たような質問やインターネット上の記事を読んでいますが、私はこのコードをHACEとき:私はのように、文字列にUSER_IDの値を変換する場合はPython変数を使用してSQLiteクエリをアセンブルする
ValueError: parameters are of unsupported type
:
import sqlite3
import sys
import time
user_id = (int(time.time()))
db_conn = sqlite3.connect('data.db')
db_curs = db_conn.cursor()
db_curs.execute('insert into Users values(?, "John Doe", "[email protected]", "52g5f2gf5gfg2f45f4f")', user_id)
db_curs.execute('select * from Users')
for registry in db_curs.fetchall():
print(registry)
db_conn.commit()
db_curs.close()
db_conn.close()
を私はデータを挿入しようとしているラインで次のエラーを取得しますこれは:
user_id = (str(int(time.time())))
私は次のエラーを取得する:EPOCHからの経過時間が10の番号な長さであるので、私はそこに問題は明らかに、ですが、私はそれが何であるかを知らないと仮定していること
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 10 supplied.
注意してください。 execute
ニーズに
'execute'は、2番目の引数としてプレースホルダの引数の順序を想定し、その代わりに、あなたは、単一の値を渡しています。それを文字列に変換すると、シーケンスが外れてしまいますが、これも間違っています。引数をタプルまたはリストで囲みます。 –