Почему запрос в SQL возвращает None?

Доброго времени суток!

Функция:

def grant_experience(user: disnake.User, message: disnake.Message):
    new_level = False
    now = int(time.time())
    connection = sqlite3.connect("database.db")
    cursor = connection.cursor()

    messages = cursor.execute(f"SELECT COUNT(*) FROM messages WHERE user_id=? AND time>{now - 30} AND experience>0", (user.id,)).fetchone()[0]

    if messages == 0:
        exp_before = cursor.execute(f"SELECT exp FROM members WHERE user_id=?", (user.id, )).fetchone()[0]
        print(exp_before)
        level_before = get_level(exp_before)
        mp = cursor.execute(f"SELECT multiplier FROM members WHERE user_id=?", (user.id,)).fetchone()[0] / 100
        exp = round(random.randint(3, 8) * mp, 0)
        exp_after = exp_before + exp
        level_after = get_level(exp_after)
        cursor.execute(f"UPDATE members SET exp=exp+{exp} WHERE user_id=?", (user.id, ))
        cursor.execute(f"UPDATE messages SET experience={exp} WHERE message_id={message.id}")

        connection.commit()

        if level_before.level != level_after.level:
            new_level = True
    
    connection.close()

    return new_level

Ошибка:

Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\heck3\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\disnake\client.py", line 703, in _run_event     
    await coro(*args, **kwargs)
  File "e:\Projects\bot taldiexq\cogs\listener.py", line 143, in on_message
    grant = grant_experience(user, message)
  File "e:\Projects\bot taldiexq\cogs\then.py", line 531, in grant_experience
    exp_before = cursor.execute(f"SELECT exp FROM members WHERE user_id=?", (user.id, )).fetchone()[0]
TypeError: 'NoneType' object is not subscriptable

Все таблицы есть, колонка exp есть, но вот почему cursor.execute() возвращает None, я не понимаю. Записи тоже есть.


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