Неправильно работает Телеграм - бот в связке с SQL

user_data = {}

class User:
     def __init__(self, first_name):
          self.first_name = first_name
          self.last_name = ''
          self.school = ''
          self.city = ''
        

@bot.message_handler(commands=['reg'])
def send_welcome(message):
     msg = bot.send_message(message.chat.id, 'Введите Имя')
     bot.register_next_step_handler(msg, process_first_name_step)

def process_first_name_step(message):
    try:
        user_id = message.from_user.id
        user_data[user_id] = User(message.text)
        msg = bot.send_message(message.chat.id, "Введите фамилию")
        bot.register_next_step_handler(msg, process_lastname_step)
    except Exception as e:
        bot.reply_to(message, 'oooops')

def process_lastname_step(message):
    user_id = message.from_user.id
    user = user_data[user_id]
    user.last_name = message.text
         
    sql = "INSERT INTO userss (first_name, last_name, user_id, school) VALUES (%s, %s, %s, %s)"
    val = (user.first_name, user.last_name, user_id, school)
    cursor.execute(sql, val)
    db.commit()
    msg = bot.send_message(message.chat.id, 'Введите номер школы')
    bot.register_next_step_handler(process_school,msg)
    
def process_school(message):
    user_id = message.from_user.id
    user = user_data[user_id]
    user.school = message.text

    sql = "UPDATE userss (first_name, last_name, user_id, school) VALUES (%s,%s,%s,%s)"
    val = (user.first_name, user.last_name, user_id, school)
    cursor.execute(sql,val)
    db.commit()
    bot.send_message(message.chat.id, "Вы успешно зарегистрированны!", reply_markup=kb.keyboardreg)

Помогите понять, почему не работает.


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

Автор решения: Mikhail Sharaborin

Покажите ошибку полностью.

Скорее всего у вас ошибка в bot.register_next_step_handler(process_school, msg) Первый параметр должен быть message, а вы передаете функцию.

bot.register_next_step_handler(msg, process_school)
→ Ссылка