为什么我无法使用不和谐机器人存储数据?



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

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

Ignoring exception in on_message
Traceback (most recent call last):
File "C:UsersRuiAppDataLocalProgramsPythonPython39libsite-packagesdiscordclient.py", line 343, in _run_event
await coro(*args, **kwargs)
File "C:UsersRuiDesktopPythonmudaenotifierkyoreborn.py", line 40, in on_message
cursor.execute(query,[(username)])
File "C:UsersRuiAppDataLocalProgramsPythonPython39libsite-packagesmysqlconnectorcursor_cext.py", line 257, in execute
prepared = self._cnx.prepare_for_mysql(params)
File "C:UsersRuiAppDataLocalProgramsPythonPython39libsite-packagesmysqlconnectorconnection_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返回一个discord.Member实例,请改用str(message.author)将其强制转换为字符串。

最新更新