@MrSel

Как решить проблему в telebot/sqlite3?

Как сделать так чтобы у меня заносились в базу все люди которые стартовали бот?

import sqlite3
import telebot


bot = telebot.TeleBot('Токен')
db = sqlite3.connect('TG.db', check_same_thread=False)
sql = db.cursor()

sql.execute("""CREATE VIRTUAL TABLE IF NOT EXISTS Started USING fts4(
    id TEXT,
    username TEXT
)""")

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Привет')
    
    username = '{0}{1}'.format('@', message.from_user.username)
    uid = message.chat.id
    
    sql.execute(f"SELECT id FROM Started WHERE id = '{uid}'")
    
    if sql.fetchone() is None:
        sql.execute(f"INSERT INTO Started VALUES (?,?)", (username, uid))
    db.commit()

bot.polling()

Сделал такой код почему-то заносит человека в базу если даже он там уже есть
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
shabelski89
@shabelski89
engineer
А поиск? Вот разжевал тут. А вам как минимум в таблицу primary key нужен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы