При работе с БД Ошибка: SQLite objects created in a thread can only be used in that same thread
Я не могу разобраться как работать с БД. Постоянно какие-то ошибки и я не понимаю, в чем они.
Кому не сложно, сделайте так, чтоб создавалась БД SQLite3 с полями Id и user_id, куда при вводе команды start в user_id добавлялось значение переменной user_id.
import telebot
import config
import sqlite3
#from telebot import apihelper
#apihelper.proxy = {'http':'https://161.35.78.7:3128'}
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands=['start'])
def start(message):
user_id = message.from_user.id
bot.send_message(message.chat.id, user_id )
bot.polling()
UPD: Код:
import telebot
import config
import sqlite3
#from telebot import apihelper
#apihelper.proxy = {'https':'https://51.254.35.77:8080'}
bot = telebot.TeleBot(config.TOKEN)
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE users(id integer PRIMARY KEY, user_id text)')
conn.commit()
@bot.message_handler(commands=['start'])
def start(message):
user_id = message.from_user.id
bot.send_message(message.chat.id, "Ваш TELEGRAMM ID = " + str(user_id))
cursor.execute("INSERT INTO users VALUES(1, 'user_id')")
conn.commit()
conn.close()
bot.polling()
Ошибка:
cursor.execute("INSERT INTO users VALUES(1, 'user_id')") sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 10396 and this is thread id 8148.
Просто никогда не работал с БД и может быть, что ошибка глупая.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Попробуйте использовать параметр check_same_thread=False:
conn = sqlite3.connect('database.db', check_same_thread=False)