Как правильно оформить синтаксис в sqlite3 python?

База данных users.db, один столбец inits

@bot.message_handler(content_types=['text'])
def text(message):
    if message.text == 'Register':
        bot.send_message(message.chat.id, "Введите свои инициалы")
        bot.register_next_step_handler(message, get_name); #следующий шаг – функция get_name
    else:
        bot.send_message(message.from_user.id, 'Что-то пошло не так... Попробуйте нажать на кнопки.')

def get_name(message): #получаем фамилию
    global user_inits;
    user_inits = message.text;
    sql.execute(f"SELECT inits FROM users WHERE inits = '{user_inits}'")
    if sql.fetchone() is None:
        sql.execute(f"INSERT INTO users VALUES (?)", user_inits)
        db.commit()
        bot.send_message(message.chat.id, "Зарегистрировано!")
    else:
        print('Такая запись уже имеется!')

Ошибка

sql.execute(f"SELECT inits FROM users WHERE inits = '{user_inits}'")
sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 16296 and this is thread id 74324.

Подскажите, в чем проблема и как правильно написать?


Ответы (1 шт):

Автор решения: Venya2624

В строке где создаешь подключение к базе добавь поставь check_same_thread значение False, как-то так

connect = sqlite3.connect('users.db', check_same_thread=False)
→ Ссылка