Добавление пользователей в бд sqlite3

У меня есть свой бот в дискорде, нужно чтобы если пользователя нет в бд, то он занесся туда, но вот не могу понять как это сделать в ивенте on_message.

@bot.event
async def on_message(message):
    if cursor.execute(f"SELECT id FROM users WHERE id = {message.author.id}").fetchone()[0] is None:
        cursor.execute(f"INSERT INTO users VALUES ({message.author.id}, 100, 'Нету', 0, 0)")
        conn.commit()
        cursor.execute(f"INSERT INTO inventory VALUES ({message.guild.id}, {message.author.id}, '')")


    else:
        pass
    bot.process_commands(message)

Дает ошибку, в проверке есть ли у пользователя айди. Но как мне проверить его на None, если он кидает ошибку

Traceback (most recent call last):
  File "C:\Users\semnf\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\semnf\OneDrive\Рабочий стол\DiscBot\hello.py", line 62, in on_message
    if cursor.execute(f"SELECT id FROM users WHERE id = {message.author.id}").fetchone()[0] is None:
TypeError: 'NoneType' object is not subscriptable


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

Автор решения: gil9red

Сам fetchone вернет None при отсутствии данных (плюс добавил биндинг параметров):

if cursor.execute("SELECT id FROM users WHERE id = ?", (message.author.id,)).fetchone() is None:
    ...
→ Ссылка