Не работает проверка на команду Discord py

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

Хочу сделать проверку, чтобы бот проверял из базы данных достаточно ли у пользователя единиц чести(honor), тоесть больше или равно, после чего выдавал ему роль по команде, в моем же случае бот всегда выдает пользователю роль, даже если у него недостаточно чести, никаких ошибок в консоль не выдает.

@client.command(aliases = ['captain'])
@commands.has_role('Дозорный')
async def __mrole1(ctx):
    if cursor.execute("SELECT honor FROM users2 WHERE honor >= 100000"):
        author = ctx.message.author
        guild = client.get_guild(тут стоит айди сервера)
        role = guild.get_role(тут стоит айди роли)
        await author.add_roles(role)
    else:
        await ctx.send('У вас недостаточно репутации')

Ответы

▲ 0Принят

cursor.execute() возвращает объект курсора, а не результат выполнения запроса. Поэтому условие всегда будет True, даже если записей в бд нет.

Вам нужно получить результат, например, с помощью fetchone() или fetchall()