Проблемы с базой данных
Хочу написать скромного кликер бота с бд, и не могу решить проблему с самим бд. Создаю таблицу с балансом и киркой, которая способствует повышению эффективности дохода от клика. При создании таблицы задаю начальные значения, 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 шт):
Автор решения: Aleksandr Fetisov
→ Ссылка
Чтобы получить результат, надо использовать метод 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 чтобы понять какая ошибка