Wordpress - 更新数据库 - $ wpdb->准备

时间:2015-04-27 20:03:07

标签: php mysql wordpress

我的自定义wordpress脚本中有一个奇怪的问题。我想更新我的数据库,并使用这行代码来执行此操作:

0xfd

现在问题是,我的页面加载了大约20秒,所以我开始进行debbuging,我发现$ wpdb-> prepare需要第二个参数。我尝试了这段代码,现在它正在运行:

0x0fff

现在问题是,在我看来,有一个' (最后由%d)关闭但从未打开所以我尝试了这些代码:

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

一旦我使用这些代码,网站加载再次超过20秒。有人可以帮助我并告诉我数据库更新的正确语法是什么?

1 个答案:

答案 0 :(得分:4)

此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。查看调试栏,以及wp-config的SAVE_QUERIES选项 https://codex.wordpress.org/Debugging_in_WordPress
  • 下一步检查您是否可以使用MySQL客户端快速执行这些查询。如果可能的话,我建议使用mysql命令行工具,但PHPMyAdmin或MySQL Workbench也可以完成这项工作
  • 最后,如果在客户端执行查询是正确且快速的,那么您可能需要检查DNS设置。我遇到了数据库服务器无法解析WordPress服务器的主机名所导致的类似问题

请告诉我这是怎么回事!