Не загружаются переменные в таблицу MySQL Python

Пишу телеграм бота, всё вроде хорошо, но не добавляются значения переменных в таблицу. Python 3.8. Заранее спасибо!

import telebot
from telebot import *
import pymysql
from db_config import host, user, db_password, db_name

#db
try:
    conn = pymysql.connect(
        host=host,
        port=xxxx,
        user=user,
        password=db_password,
        database=db_name,
        cursorclass=pymysql.cursors.DictCursor
    )
    print("Successfully connected...")
    print("="*25)
    try:
        with conn.cursor() as cursor:
            pass
            #create_table_query = "CREATE TABLE (id int AUTO_INCREMENT,login varchar(30), password varchar(30), adminlevel varchar(30),PRIMARY KEY(id))"
            #drop_table = "DROP TABLE `users`"
            #cursor.execute(create_table_query)
            #print("Table created...")
    finally:
        pass
        #conn.close()
except Exception as ex:
    print("Connection refused...")
    print(ex)



#bot
user_dict = {}
adminlevel = 2
class User:
    def __init__(self, login):
        self.login = login
        self.password = None
        self.adminlevel = None
        keys = ['login', 'password']

        for key in keys:
            self.key = None
TOKEN = "xxx"
bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands = ["start"])
def welcome(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    log = types.KeyboardButton("Войти в аккаунт")
    register =  types.KeyboardButton("Создать новый аккаунт")
    markup.add(log, register)
    bot.send_message(message.chat.id, "Добро пожаловать {0.first_name}! Я бот-администратор для твоей группы/бесседы!\nДля моей работы ты должен зарегестрировать новый или войти в существующий аккаунт.".format(message.from_user,bot.get_me()), parse_mode="HTML", reply_markup=markup)

@bot.message_handler(content_types=["text"])
def answer(message):
    if message.chat.type == "private":
        if message.text == "Создать новый аккаунт":
            make_login_step(message)

def make_login_step(message):
    try:
        chat_id = message.chat.id
        login = message.text
        user = User(login)
        user_dict[chat_id] = user
        msg = bot.send_message(chat_id, "Отлично! Для начала введи логин.")
        bot.register_next_step_handler(msg, make_password_step)
    finally:
        pass
def make_password_step(message):
    try:
        chat_id = message.chat.id
        password = message.text
        user = User(password)
        user_dict[chat_id] = user
        msg = bot.send_message(chat_id, "Теперь пароль")
        bot.register_next_step_handler(msg, finish_reg_step)
    finally:
        pass
def finish_reg_step(message):
        adminlevel = 1
        bot.send_message(message.chat.id, str("Регистрация завершена"))
        msg = bot.send_message(message.chat.id, "Теперь ты можешь войти в свой аккаунт через /alogin")
        with conn.cursor() as cursor:
            insert_data = "INSERT INTO `users`(login, password, adminlevel) VALUES (login, password, adminlevel)"
            cursor.execute(insert_data)

bot.polling(none_stop=True)

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

Автор решения: jediAllen

Вот, нашёл пример вашей ошибки. При добавлении вы просто пишете названия переменных. Надо выполнять функцию execute, вместо переменных написав знак вопроса. Вот этот запрос который вы передали в execute это первый аргумент, вторым передайте в скобках переменные которые как бы подставятся под знаки вопроса. Все

→ Ссылка