PHP从MySql错误中检索值

时间:2010-10-08 16:59:07

标签: php mysql

我有一个PHP脚本,我已经从互联网上的例子中放到了一起。

我对php不是很熟悉,而且我收到了错误。

我正在尝试获取我的Wordpress博客的最后发布日期,以便我的程序显示我们为用户提供重要信息的最后日期。

这是我的代码:

    <?php 

    function lpd_post_date( $date_format, $echo, $modified_date = false )
    {         

        $dbhost = 'xxx';
        $dbuser = 'xxx';
        $dbpass = 'xxx';
        $dbname = 'xxx';

        $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
        mysql_select_db($dbname);

        // include 'config.php';
        // include 'opendb.php';

        global $wpdb;
        $date_col = 'post_date';
        if ( $modified_date ) $date_col = 'post_modified';
        $sql = " SELECT $date_col FROM {$wpdb->posts} WHERE post_status = 'publish' AND post_type = 'post' ORDER BY $date_col DESC LIMIT 1 ";
        $mysql_date = $wpdb->get_var( $sql );
        if ( ! $date_format ) $date_format = get_option('date_format');
        $formatted_date = mysql2date( $date_format, $mysql_date );
        echo $formatted_date;        

        mysql_close($conn); 

    }
?>

我收到此错误:

  

致命错误:调用成员函数   在一个非对象中   /homepages/38/d157689362/htdocs/suburban/updates/last/last.php   在第21行

有人能帮帮我吗?我在第21行失去了它的作用:

  

$ mysql_date = $ wpdb-&gt; get_var($ sql);

非常感谢任何帮助!

谢谢!

2 个答案:

答案 0 :(得分:1)

您正在使用全局变量$wpdb,它应该是某个类的实例,但是当您使用它时,它是未定义的。 $wpdb应在调用函数lpd_post_date之前进行实例化。您将使用以下内容实例化$wpdb

$wpdb = new myClass(); //myClass is the class name of your class

答案 1 :(得分:0)

这个错误确实是因为没有定义$ wpdb。

最好将此代码放在WP为您的活动主题创建的WordPress functions.php文件中(在'wp-content / themes / active_theme_name / functions.php'中找到 - 如果我是默认主题'默认'回想一下)。 $ wpdb已在此文件中定义,您编写的代码应该在那里工作(取出<?php?>,然后将函数放在文件中的其他位置。然后,您可以通过以下方式调用您创建的函数:

  1. include_once('_path_to_active_theme/functions.php');放在脚本的顶部,然后在新的php文件中调用该函数:

    $ return_value = lpd_post_date($ date_format,$ echo,$ modified_date);

    //使用$ return_value

  2. 做我们需要做的事情
  3. 在主题UI代码中调用该函数 - 当然,如果您尝试将值lpd_post_date返回值放在UI的某个位置

  4. 以下内容可能有所帮助:

    http://wordpress.org/support/topic/get_var-on-a-non-object-wpdb http://codex.wordpress.org/Theme_Development#Functions_File

    如果您尚未阅读整个Theme_Development第二个链接,那绝对是一个好主意。