Почему запрос в 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, я не понимаю. Записи тоже есть.