У меня есть фрагмент кода из моей программы на python 2.7:
cur.execute("UPDATE echo SET ? = ? WHERE ID = ?", (cur_class, fdate, ID,))
, который при запуске продолжает выдавать следующую ошибку:
sqlite3.OperationalError: near "?": syntax error
Предполагается, что программа вставит сегодняшнюю дату в столбец класса, который соответствует предоставленному идентификатору студента.Если я уберу первый "?"как и в жестком коде параметра:
cur.execute("UPDATE echo SET math = ? WHERE ID = ?", (fdate, ID,))
все работает просто отлично.Я погуглил повсюду и не нашел ничего, что работает, поэтому я выбрасываю спасательный круг.Я пробовал одинарные кавычки, двойные кавычки, с круглыми скобками и без них, а также несколько других вещей, которые я сейчас не могу вспомнить.Пока что ничего не работает, кроме жесткого кодирования этого первого параметра, который действительно неудобен.
В качестве шага устранения неполадок я заставил мою программу напечатать type () каждой из переменных, и все они являются строками.Тип данных поля cur_class - VARCHAR, fdate - DATE, а ID - VARCHAR.