为什么我不能用我的 discord 机器人存储数据?

Why can't I store data with my discord bot?

所以我为我的 discord.py 机器人设置了 MySQL。 我打算在朋友服务器上做一些小项目来测试自己。

我想让它统计一周内发送了多少条消息,但它不起作用。 它给了我这个错误:

Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\Rui\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\Rui\Desktop\Python\mudaenotifier\kyoreborn.py", line 40, in on_message
    cursor.execute(query,[(username)])
  File "C:\Users\Rui\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\cursor_cext.py", line 257, in execute
    prepared = self._cnx.prepare_for_mysql(params)
  File "C:\Users\Rui\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\connection_cext.py", line 665, in prepare_for_mysql
    result = self._cmysql.convert_to_mysql(*params)
_mysql_connector.MySQLInterfaceError: Python type Member cannot be converted

我能用它做什么?

这是我的代码:

@client.event
async def on_message(message):
    username=message.author
    print(username)
    query="SELECT * FROM messages WHERE username=%s"
    cursor.execute(query,[(username)])
    results=cursor.fetchall()
    if results:
        query="UPDATE messages SET messagecount = messagecount + 1 WHERE username = %s"
        cursor.execute(query,[(username)])
        con.commit()
        con.close()
    else:
        query = "INSERT INTO `messages`(username,messagecount) VALUES (%s,1)"
        cursor.execute(query, [(username)])
        con.commit()
        con.close()
    await client.process_commands(message)

message.author returns 一个 discord.Member 实例,使用 str(message.author) 将其转换为字符串。