为什么我不能用我的 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)
将其转换为字符串。
所以我为我的 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)
将其转换为字符串。