【问题标题】:MySQL executes sleep command when UPDATE query is usedMySQL 在使用 UPDATE 查询时执行 sleep 命令
【发布时间】:2021-05-05 02:12:48
【问题描述】:

我创建了一个与 mysql 数据库交互的不和谐机器人,但是当您运行使用 UPDATE 查询的命令时,它不会执行更新查询而是执行 sleep ,这意味着数据库中的数据没有被更改。

(来自评论)

@client.command()   
async def SetJob(ctx, uid: str, rank: str):
    disout = exec("UPDATE users SET 'job'='{0}' WHERE identifier='{1}'".format(rank,uid))
    if ctx.message.author == client.user:
        return
    if ctx.message.author.id not in whitelisted:
        await ctx.send(embed=discord.Embed(title="You are not authorized to use this bot", description='Please contact Not Soviet Bear to add you to the whitelisted members list', color=discord.Color.red()))
        return
    else:
        await ctx.send(embed=discord.Embed(title="Job Change", description="Job changed to '{0}' for Identifier'{1}'".format(rank,uid), color=discord.Color.blue()))

【问题讨论】:

  • edit您的问题更详细地解释。 MySQL 不太可能用 SLEEP 代替 UPDATE 命令。请出示相关代码,以便我们为您提供帮助。
  • 这是有问题的代码,我不得不将它链接到粘贴箱,因为它太长了,无法添加到评论pastebin.com/b4hUNSJq至于编辑问题,这是我能解释的最好的因为我不知道是什么导致了问题

标签: mysql python-3.x discord.py


【解决方案1】:

我假设您的“机器人”会定期执行SHOW PROCESSLIST?好吧,UPDATE 可能完成得太快以至于它没有看到查询。

Sleep 表示连接仍然​​存在,但什么也不做。 (没有“sleep command”;“sleep”表示此时没有查询正在运行。)

所以,也许问题是“为什么我的更新没有做任何事情?”。为了调试(或获得我们的帮助),

  • 运行更新后检查错误。 (您应该始终这样做。)
  • 找出生成的 SQL 的确切文本。 (有时会出现明显的语法错误或无法转义,例如引号。)

【讨论】:

  • 它没有运行更新查询,数据库中的数据保持不变并没有改变
  • @DimitriSlavoski - 在声称它“没有运行更新查询”之前,请排除语法错误、数据错误等。只是因为表格没有改变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
相关资源
最近更新 更多