我试图在SQLite查询中放置一个变量,我已经阅读了文档,我在这里读过类似的问题和互联网上的文章,但我一直得到同样的两个错误,当我这个代码时:
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", "johndoe@yahoo.com", "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()
我在尝试插入数据的行中收到以下错误:
ValueError:参数属于不受支持的类型
如果我将user_id的值转换为字符串,如下所示:
user_id = (str(int(time.time())))
我收到以下错误:
sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,并且提供了10个。
请注意,自EPOCH以来的时间长度是10个数字,所以我认为问题很明显,但我不知道它是什么。
答案 0 :(得分:0)
execute
的第二个参数需要是一个元组:
db_curs.execute('insert into Users values(?, "John Doe", "johndoe@yahoo.com", "52g5f2gf5gfg2f45f4f")', (user_id,))