old_stalin
@old_stalin

Почему я получаю ошибку «sqlite3.OperationalError: no such column: test»?

Есть стол
cursor_voice.execute("""CREATE TABLE IF NOT EXISTS voice_data(
            c_name TEXT,
            c_id INT,
            v_name TEXT,
            v_id INT
        )""")

Хочу обновить в нем значения (name_category содержит значение test):
cursor_voice.execute("UPDATE voice_data SET c_name =  {}".format(name_category))
cursor_voice.execute("UPDATE voice_data SET c_id = {}".format(category_private.id))
cursor_voice.execute("UPDATE voice_data SET v_name = {}".format(voice_private))
cursor_voice.execute("UPDATE voice_data SET v_id = {}".format(voice_private.id))
voice.commit()

Вылетает ошибка:
cursor_voice.execute("UPDATE voice_data SET c_name = {}".format(name_category))
sqlite3.OperationalError: no such column: test

Как это решить?
  • Вопрос задан
  • 421 просмотр
Решения вопроса 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Запросы с параметрами в SQLite
Попробуйте так:
cursor_voice.execute("UPDATE voice_data SET c_name=?",(name_category,))
Только я не пойму смысла в данном запросе.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что не надо значения в sql-запрос подставлять с помощью форматирования строк.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект