【问题标题】:results from $wpdb->last_query结果来自 $wpdb->last_query
【发布时间】:2014-11-09 23:17:17
【问题描述】:

我正在尝试将单个页面作为插件作为管理菜单移动到 Wordpress 中。我首先验证 isset($wpdb) 但我的测试查询失败。我做了 $wpdb->last_query,但我不明白结果。

这是我尝试的:

    $clientquery = $wpdb->query("select post_title from wp_posts where id=390");
    exit(var_dump( $wpdb->last_query));

这是结果:

string(44) "select post_title from wp_posts where id=390"

string(44) 是从哪里来的?顺便说一句,我对自己学习 PHP 和 Wordpress 的开发完全陌生。

另外,如果我将查询更改为“select * from ...”,结果将更改为 string(35)...。什么?

【问题讨论】:

  • 是变量的类型,44个字符的字符串
  • 谢谢,我一直在寻找一些戏剧性的东西,但完全忽略了字符数。最后,我还得继续尝试找出为什么连这么简单的查询都失败了。
  • 看你提供的信息我看不出来,有很多地方可能出错,但参考这些页面:php.net/manual/en/function.mysql-connect.phpphp.net/manual/en/function.mysql-query.php,底部有很多例子可以帮助你

标签: php wordpress


【解决方案1】:

假设您已将 $wpdb 声明为全局变量,那么上述代码应该可以正常工作,因此您的代码应如下所示:

global $wpdb;
$clientquery = $wpdb->query("select post_title from wp_posts where id=390");
var_dump($clientquery);

注意结果存储在 $clientquery 中

【讨论】:

  • 谢谢大卫。 Mauricio 的评论告诉我 string(44) 的含义让我不再认为查询是问题所在。然后,当我测试 $clientquery 的结果时,我可以看到我有一个错字。我将相同的错字复制到我的 var_dump($clientquery) 中,由于没有结果,我求助于 $wpdb->last_query,但我不明白它在告诉我什么。一切正常,我正在显示数据。
【解决方案2】:

$wpdb->last_query 显示确切的 MySQL 查询本身,string(44) 表示它是长度为 44 的字符串类型:

 string(44)   select post_title from wp_posts where id=390

WordPress 定义了一个名为 wpdb 的类,其中包含一组用于与数据库交互的函数。它的主要目的是提供与 WordPress 数据库的接口,但可用于与任何其他适当的数据库进行通信。所以没有必要使用isset()函数检查

【讨论】:

    猜你喜欢
    • 2015-07-08
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    相关资源
    最近更新 更多