我有一个机器人,我做了一个循环检查,如果服务器已作出更改,如名称或成员数量,但请求不更新我的数据库。
我没有任何错误消息。并尝试如果请求是发送我有2打印和在终端“你好”出现,但我的数据库没有更新。
代码:
Main.py:
@bot.event
async def on_ready() -> None:
print ("Bot is ready !")
print (f"Logged into {bot.user.name}")
print (f"ID : {bot.user.id}")
get_serv_info.start()
@tasks.loop()
async def get_serv_info() -> None:
for server in bot.guilds:
server_name = server.name
server_id = server.id
nb_member = server.member_count
try:
database_handler.update_server(server_id, server_name, nb_member)
print("hello")
except:
print("hi")
await asyncio.sleep(10)
数据库处理程序.py:
def update_server(self, server_name : str, server_id : str, nb_member : str):
cursor = self.connect.cursor()
query = f"UPDATE Servers SET server_name = ?, nb_member = ? WHERE server_id = ?;"
cursor.execute(query, (server_name, nb_member, server_id))
cursor.close()
self.connect.commit()
1条答案
按热度按时间6yt4nkrj1#
根据它们的名称,看起来你传递参数的顺序不对,这可能意味着你在
server_id
上没有得到匹配,或者你会以意想不到的方式改变你的数据。交换
server_id
和nb_member
,使它们与查询中的顺序匹配:或者,您可以通过传入dict来使用命名占位符:
这允许你以任意顺序传入参数,也有助于清晰度,尤其是当你处理的参数数量很多的时候。