С помощью '?' в качестве заполнителя withFlask и SQLite3 выдает OperationalError. - PullRequest
2 голосов
/ 22 марта 2012

Некомментированный код, приведенный ниже, приводит к ошибке OperationalError: near "?" в то время как закомментированные строки работают нормально. Что мне здесь не хватает?

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 ]

4 голосов
/ 22 марта 2012

Нельзя использовать заполнители для имен столбцов или таблиц. Вы можете попробовать это:

user = session['user']
data = request.form['date']
value = request.form['value']
g.db.execute('INSERT INTO {} (date,value) VALUES (?,?)'.format(user), (data, value)) 
3 голосов
/ 22 марта 2012

Нельзя параметризировать имя таблицы.Для этого вы должны использовать формат строки / сцепление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...