Проблемы с базой данных

Рейтинг: 0Ответов: 1Опубликовано: 24.03.2023

введите сюда описание изображенияХочу написать скромного кликер бота с бд, и не могу решить проблему с самим бд. Создаю таблицу с балансом и киркой, которая способствует повышению эффективности дохода от клика. При создании таблицы задаю начальные значения, 0 и "деревянная" соответственно, и при выводе этих данных в разделе профиль, он почему-то выдает в обоих значениях оба нуля.

@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, 'Бот работает!123')

    try:
        cur.execute("INSERT INTO server (id) VALUES (%s)", (message.chat.id,))
        db.commit()
    except:
        pass


@bot.message_handler(content_types=['text'])
def simple(message):
    balance = cur.execute("SELECT balance FROM server WHERE id = %s", (message.chat.id,))
    pick = cur.execute("SELECT pick FROM server WHERE id = %s", (message.chat.id,))
    msg = message.text
    id = message.chat.id
    if msg == 'Меню' or msg == 'Назад' or msg == 'Вернуться в Меню':
        bot.send_message(id, 'Вы попали в Меню:', reply_markup=menu)
    if msg == 'Профиль':
        bot.send_message(id, 'Профиль:\nID = ' + str(id) + '\nБаланс = ' + str(balance) + '\nКирка = ' + str(pick), reply_markup=profile)

Ответы

▲ 1

Чтобы получить результат, надо использовать метод fetchone или fetchall после выполнения запроса с помощью execute. Попробуйте изменить

balance = cur.execute("SELECT balance FROM server WHERE id = %s", (message.chat.id,))
pick = cur.execute("SELECT pick FROM server WHERE id = %s", (message.chat.id,))

На

balance = cur.fetchone()[0]
cur.execute("SELECT pick FROM server WHERE id = %s", (message.chat.id,))
pick = cur.fetchone()[0]

Плюс я бы еще использовал except чтобы понять какая ошибка