как обновить базу данных

Рейтинг: 1Ответов: 1Опубликовано: 20.02.2023

работаю с базой данных sqlitе3, нужно обновлять базу данных все пишу как и в прошлой работе, но почему-то не обновляет. вот код

def pars(message):
    global username, user_id
    try:
        user_id = message.new_chat_members[0].id
        username = message.new_chat_members[0].username
        print(str(user_id) + ' '+ str(username))
        cursor.execute('INSERT INTO us_id (id, name) VALUES(?, ?)', (user_id, username) )
        conn.commit()
    except sqlite3.IntegrityError:
        cursor.execute('SELECT name FROM us_id WHERE id=' + str(user_id))
        ('Update us_id set name = ' + username + ' where id = ' + str(user_id))
        conn.commit()

а вот ошибка

5450793783 Sergei_Trafimov2
Traceback (most recent call last):
  File "I:\Проекты\BOT_2.py", line 179, in <module>
    bot.polling(none_stop=True)
  File "I:\Проекты\venv\lib\site-packages\telebot\__init__.py", line 1043, in polling
    self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
  File "I:\Проекты\venv\lib\site-packages\telebot\__init__.py", line 1118, in __threaded_polling
    raise e
  File "I:\Проекты\venv\lib\site-packages\telebot\__init__.py", line 1074, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "I:\Проекты\venv\lib\site-packages\telebot\util.py", line 156, in raise_exceptions
    raise self.exception_info
  File "I:\Проекты\venv\lib\site-packages\telebot\util.py", line 100, in run
    task(*args, **kwargs)
  File "I:\Проекты\venv\lib\site-packages\telebot\__init__.py", line 6395, in _run_middlewares_and_handler
    result = handler['function'](message)
  File "I:\Проекты\BOT_2.py", line 120, in parsing
    cursor.execute('Update us_id set name = ' + username + ' where id = ' + str(user_id))
sqlite3.OperationalError: no such column: Sergei_Trafimov2

код почему то ищет столбец с именем переменной

Ответы

▲ 0

Попробуй заменить на

cursor.execute('UPDATE us_id SET name=? WHERE id=?', (username, user_id))