Python 使用'';使用Flask和SQLite3作为占位符会产生操作错误。

Python 使用'';使用Flask和SQLite3作为占位符会产生操作错误。,python,sqlite,flask,Python,Sqlite,Flask,下面未注释的代码产生一个操作错误:接近“?”,而注释行工作正常。我错过了什么 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 (?,?)', \ #

下面未注释的代码产生一个操作错误:接近“?”,而注释行工作正常。我错过了什么

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']] ) 

不能参数化表名。为此,必须使用字符串格式/连接。

列或表名不能使用占位符。您可以尝试以下方法:

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

你知道这有什么原因吗?谢谢:)@lithium表名不接受占位符(
)。您需要明确地编写它。