[英]Wordpress: wpdb->insert VERSUS wpdb->prepare(wpdb->query("INSERT
[英]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秒延迟一定是数据库,数据库服务器或与它的连接出现问题,鉴于提供的信息,我们无法对其进行故障排除。
您可以尝试以下方法
请让我知道情况如何!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.