@char906

Почему телеграмм бот не выводит выводит инфу из базы данных?

Доброго времени суток. Пишу телеграмм бота для магазина автопродаж, нужно вывести из базы данных баланс юзера. База данных SQlite

def user_money(self, money):
        with self.connection:
            balans = self.cursor.execute('SELECT * FROM `subscriptions` WHERE `user_id` = ?',(money, )).fetchone()
            if balans is None:
                return False
            else:
                return balans

i = db.user_money(message.text)

bot.send_message(message.chat.id, 'Добро пожаловать, твой баланс '+str(i)+' {0.first_name}!\nЯ - <b>{1.first_name}</b>'.format(message.from_user, bot.get_me()),
        parse_mode='html', reply_markup=markup)


На выходе получаю всегда
Добро пожаловать, твой баланс False
хотя в базе данных на этой ячейке присвоено значение 50 (если убрать if и написать fetchall(), то на выводе просто [] )

Как я понял проблема в том что я неправильно пишу синтаксис SQL, есть огромное чувство что я туплю на ровном месте, вот только второй день уже не могу понять как это решить

Заранее спасибо за ответ!
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@char906 Автор вопроса
Сделал вывод данных из БД.

Как оказалось надо было просто сменить:

i = db.user_money(message.text)
на
i = db.user_money(message.from_user.id)

Спасибо всем за помощь!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Скорее всего ошибка в методе def user_money(self, money):
Скорее всего в метод надо передавать id пользователя, а не money.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы