Python错误:命令不同步;你可以';现在不要运行这个命令

Python错误:命令不同步;你可以';现在不要运行这个命令,python,mysql,python-3.x,string,Python,Mysql,Python 3.x,String,这是一个场景, 我面临着错误 Error:Commands out of sync; you can't run this command now 我需要将字符串传递给MYSQL,它是双引号和单引号的混合体。但是,当mysql解析字符串时,它无法处理参数,因为Python正在将'转换为'。 比如说 temp = "users= JSON_ARRAY_APPEND(users, '$', 'user1'), users= JSON_ARRAY_APPEND(users, '$', 'user2'

这是一个场景, 我面临着错误

Error:Commands out of sync; you can't run this command now
我需要将字符串传递给MYSQL,它是双引号和单引号的混合体。但是,当mysql解析字符串时,它无法处理参数,因为Python正在将
'
转换为
'
。 比如说

temp = "users= JSON_ARRAY_APPEND(users, '$', 'user1'), users= JSON_ARRAY_APPEND(users, '$', 'user2')"
转化为

temp = 'users= JSON_ARRAY_APPEND(users, \'$\', \'user1\'), users= JSON_ARRAY_APPEND(users, \'$\', \'user2\')'



sql = "Insert into User(internal_id, users) values(16, IFNULL(users->'$',JSON_ARRAY())); Update User SET " + temp + " where internal_id = 16;"
如何应对这种情况?
感谢

基于搜索过去与错误相关的堆栈溢出问题:

命令不同步;现在无法运行此命令

此问题是由于在对
execute()
的同一调用中执行多个SQL语句造成的。除非传递参数
multi=True
,否则无法执行此操作

这是与中报告的解决方案相同的解决方案

但是没有理由使用多个语句。编写代码一次执行一条SQL语句更容易、更清晰


MySQL的前工程经理曾经告诉我,“MySQL没有理由支持多语句。”它们只会让编写代码变得更加困难,而且不会给性能或其他任何方面带来任何优势。

看起来没有任何优势“更改为”。外部的引号不是字符串的一部分。它只是在字符串中添加转义字符。您能提供使用
temp
的代码吗?@DVL更新了代码您发布的错误与引号无关,这意味着您尚未关闭上一条SQL语句的游标,因此客户端认为它还有更多的结果要获取。调用存储过程后尤其如此,因为过程返回多个结果集。请看@Bill Karwin,我停止了应用程序,在重新运行应用程序后,我仍然面临相同的错误。在完成操作后,我将关闭光标连接。另一个选项:您应该分别运行插入和更新。不要试图将它们组合成一个
execute()
调用。在发布此问题之前,我已经尝试过multi=True,但即使现在也不起作用,无法找出原因!!仅当我将这两个查询作为单独的查询执行时。。否则,它会给我带来一个
错误:命令不同步;现在无法运行此命令
,请分别运行这些语句。我就是这么做的。是的@Bill Karwin!!