【问题标题】:WordPress database error Commands out of sync;WordPress 数据库错误 命令不同步;
【发布时间】: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

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

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

【问题讨论】:

标签: php mysql wordpress woocommerce


【解决方案1】:

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

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

【讨论】:

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

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

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

在 WordPress 数据库类中,wpdbit 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 关键字搜索错误消息会很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 2013-01-11
    • 2018-06-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多