繁体   English   中英

WordPress的-更新数据库-$ wpdb->准备

[英]Wordpress - Update Database - $wpdb->prepare

我的自定义wordpress脚本中确实存在一个奇怪的问题。 我想更新我的数据库,并使用以下代码来做到这一点:

$update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= '$user->ID'"));

现在的问题是,我的页面加载了大约20秒钟,因此我开始调试,发现$ wpdb-> prepare需要第二个参数。 我尝试了这段代码,现在它正在工作:

$update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= %d'", $user->ID));

现在的问题是,在我看来,有一个'(末尾为%d)关闭但从未打开过,所以我尝试了以下代码:

$update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= '%d'", $user->ID));

$update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= %d", $user->ID));

我使用这些代码后,网站负载又超过了20秒。 有人可以帮助我,告诉我数据库更新的正确语法是什么吗?

此SQL查询的正确语法为:

$update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= %d", $user->ID));

prepare将用$user->ID整数替换%d

您看到的20秒延迟一定是数据库,数据库服务器或与它的连接出现问题,鉴于提供的信息,我们无法对其进行故障排除。

您可以尝试以下方法

  • 首先,要确保正确生成SQL。 检出Debug Bar和wp-config https://codex.wordpress.org/Debugging_in_WordPress的SAVE_QUERIES选项
  • 下一步检查您是否可以使用MySQL客户端快速执行这些查询。 我建议尽可能使用mysql命令行工具,但PHPMyAdmin或MySQL Workbench也会做
  • 最后,如果在客户端中执行查询时查询正确且快速,则您可能需要检查DNS设置。 我遇到了由数据库服务器无法解析WordPress服务器的主机名引起的类似问题

请让我知道情况如何!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM