使用Python变量

时间:2016-11-25 21:32:55

标签: python sqlite

我试图在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个数字,所以我认为问题很明显,但我不知道它是什么。

1 个答案:

答案 0 :(得分:0)

execute的第二个参数需要是一个元组:

db_curs.execute('insert into Users values(?, "John Doe", "johndoe@yahoo.com", "52g5f2gf5gfg2f45f4f")', (user_id,))