@only_yours2021
Начинающий программист

Можете помочь сделать код на проверку зарегистрированного пользователя?

Кто то может помочь написать код на проверку зарегистрированного пользователя?

Сам код:
import sqlite3
import telebot

bot = telebot.TeleBot("5436537644:AAGSHx6uIKr1GHcC0qxTkGVc-h4dtTzgJRA")

conn = sqlite3.connect('database.db', check_same_thread=False)
cursor = conn.cursor()

def db_table_val(user_id: int, user_name: str, user_surname: str, username: str):

    print('Добавляем человека в базу')
    cursor.execute('INSERT INTO test (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)', (user_id, user_name, user_surname, username))
    conn.commit()
    
#@bot.message_handler(commands=['start'])
#def start_message(message):
#	bot.send_message(message.chat.id, 'Добро пожаловать')


@bot.message_handler(commands=['start'])
def start_message(message):
	#if message.text.lower() == 'привет':
    #if not message.from_user.user.id == '0':
    cursor.execute('SELECT * FROM test WHERE user_id=?' (user_id,))
    result = cursor.fetchone()             
    if not result:
        print('Добавляем человека в базу')
        bot.send_message(message.chat.id, "Привет! Ваше имя добавлено в базу данных!") 
        cursor.execute('INSERT INTO test (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)', (user_id, user_name, user_surname, username))
        conn.commit()
    else:
        print('Такой человек уже есть!')


        
        #bot.send_message(message.chat.id, "Привет! Ваше имя добавлено в базу данных!") 
        
        us_id = message.from_user.id
        us_name = message.from_user.first_name
        us_sname = message.from_user.last_name
        username = message.from_user.username
		
        db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname, username=username)
     
    #else:
        bot.send_message(message.chat.id, "ты зареган уже")
    

bot.polling(none_stop=True)


Возникающие ошибки после команды /start:
File "test.py", line 24, in start_message
    cursor.execute('SELECT * FROM test WHERE user_id=?' (user_id,))
NameError: name 'user_id' is not defined


База данных:
62ed989018d9f882750189.png
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 1
Wispik
@Wispik
cursor.execute('SELECT * FROM test WHERE user_id=?' (user_id,))

откуда здесь переменная user_id взялась? она нигде не объявлена
spoiler
а строкой выше у тебя даже написано, откуда этот user_id можно взять
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы