用'?'作为占位符withFlask和SQLite3产生OperationalError。

时间:2012-03-22 10:52:15

标签: python sqlite flask

下面的未注释代码产生一个OperationalError:接近“?”虽然评论的行很好。我在这里缺少什么?

g.db.execute('INSERT INTO ? (date,value) VALUES (?,?)', \
[session['user'],request.form['date'],request.form['value']] ) 

#g.db.execute('INSERT INTO '+session['user']+' (date,value) VALUES (?,?)', \
#                 [request.form['date'],request.form['value']] ) 

2 个答案:

答案 0 :(得分:4)

您不能对列名或表名使用占位符。你可以试试这个:

user = session['user']
data = request.form['date']
value = request.form['value']
g.db.execute('INSERT INTO {} (date,value) VALUES (?,?)'.format(user), (data, value)) 

答案 1 :(得分:3)

您无法参数化表名。你必须使用字符串格式/连接。