WordPress 数据库错误 命令不同步;

Posted

技术标签:

【中文标题】WordPress 数据库错误 命令不同步;【英文标题】:WordPress database error Commands out of sync; 【发布时间】:2019-12-05 11:19:32 【问题描述】:

我制作了一个 Wordpress 插件,可以将一些产品(几百个)从 API 导入到 Woocommerce。问题是大约 10 分钟后(最大执行时间设置为无限制)我多次收到此错误,但 option_name 不同(属性有一些分类法):

WordPress database error Commands out of sync; you can't run this command now for query SELECT autoload FROM wp_options WHERE option_name = '_transient_wc_layered_nav_counts_pa_tehnologii-display' made by shutdown_action_hook, do_action('shutdown'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Cache_Helper::delete_transients_on_shutdown, delete_transient, delete_option

在其他时刻,正在导入产品的工作正在停止,没有任何错误消息。

我在其他主机上试过这个插件,没有问题。 有什么想法吗?

【问题讨论】:

试试这个:core.trac.wordpress.org/ticket/31245#comment:57 似乎相关 您找到解决方案了吗?如果你这样做了,请在这里分享 【参考方案1】:

这是缓存插件错误,请尝试清除缓存以查看是否有帮助。否则完全卸载并重新安装缓存插件,也许这会起作用。它是由插件在数据库查询中留下混乱或未正确关闭引起的。

另外值得注意的是,如果您的主机为您提供缓存功能,并且您可以安全地禁用 wordpress 缓存插件。

【讨论】:

其实也不是一直出现,也不知道什么时候出现这个错误!【参考方案2】:

就我而言,这是因为我在开发my own WP+React template 时mysqli_querymysqli_multi_query 之间的冲突。

根据this doc和this question,可能会导致“同步命令”错误。

在 WordPress 数据库类中,wpdb、it uses mysqli_query。我使用mysqli_multi_query 作为我的 SQL 代码。他们正是导致上述 2 个文档中的问题。

文档中也描述了解决方案。

我通过添加以下行来修复它:

$result = mysqli_multi_query($wpdb->dbh, $sql);
while(mysqli_next_result($wpdb->dbh)); // flush multi queries.

ps。我还了解到,当错误消息以“WordPress 数据库错误”开头时,这意味着错误来自数据库端(mysql),而不是 WordPress 端。 Check this code。使用 mysql 关键字搜索错误消息会很有帮助。

【讨论】:

以上是关于WordPress 数据库错误 命令不同步;的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:“命令不同步”错误(C 连接器)

MariaDB 命令不同步

错误:命令不同步;你现在不能运行这个命令

MySQL 错误 2014 - 命令不同步 - 尝试调用连续存储过程时

MySQL 错误 - 命令不同步;你现在不能运行这个命令

appme 主题中的菜单与 wordpress 中的哈希 id 不同步