Как правильно оформить синтаксис в 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)