Telegram Bot + MySQLITE SOS

Всех приветствую. Поставил для себя задачу написать телеграмм-бота, но не имею достаточно знаний и умений. Предполагаемая логика бота достаточно простая (как мне казалось). Пользователь запускает команду /start -> просьба №1 ввести данные (эти данные заносятся в базу MySQLite) -> просьба №2 ввести данные (эти данные заносятся в базу MySQLite) -> пользователя благодарят или подтверждают, что данные внесены. Но застрял на проблеме, запускается все без ошибок, но данные в базу не заносит и на последнем шаге, вместо "Вы успешно ввели все данные" все падает в "Ошибка".

Я думаю на переменные и на то, что как-то неправильно передаю данные в БД.

Также пробовал различные вариации кода, в одном случае символ "%" не распознаётся В другом telebot пишет "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: chat not found"

Буду очень благодарен, если кто-нибудь подскажет решение проблемы.

p.s. Еще очень хочется в самом начале поставить ветвление, буду рад, если подскажете как это реализовать (т.е. пользователю предлагается "Какие данные ввести" с Reply клавиатурой, а при выборе одного из вариантов начинается вышеуказанная цепочка)

import telebot
import sqlite3

bot = telebot.TeleBot("Token")

sql = sqlite3.connect('DataBase.db', check_same_thread=False)
cursor = sql.cursor()

user_data = {}

class User:
    def __init__(self, datas):
        self.datas = datas
        self.datass = ''

@bot.message_handler(commands=['start'])
def send_welcome(message):
        msg = bot.send_message(message.chat.id, "Введите данные №1")
        bot.register_next_step_handler(msg, process_one_step)

def process_one_step(message):
    try:
        user_id = message.from_user.id
        user_data[user_id] = User(message.text)
        msg = bot.send_message(message.chat.id, 'Введите данные №2')
        bot.register_next_step_handler(msg, process_two_step)
    except Exception as e:
        bot.send_message(message.chat.id, 'Ошибка')


def process_two_step(message):
    try:
        user_id = message.from_user.id
        user = user_data[user_id]
        user_data[user_id] = User(message.text)
        db = "INSERT INTO BotTable (user_id, dataone, datatwo) VALUES (%s, %s, %s)"
        val = (user_id, user.datas, user.datass)
        cursor.execute (db, val)
        sql.commit()
        bot.send_message(message.chat.id, 'Вы успешно ввели все данные')
    except Exception as e:
        bot.send_message(message.chat.id, 'Ошибка')

bot.enable_save_next_step_handlers(delay=2)

bot.load_next_step_handlers()

if __name__=='__main__':
    bot.polling(none_stop=True)

На всякий случай БД


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