在wordpress中“试图在非对象上获取属性”

时间:2011-12-20 22:08:56

标签: php wordpress

我正在创建wordpress主题。我在textarea中得到了这个错误:试图获取非对象的属性。

function add_map_url($post){

        global $wpdb;
        $info = $wpdb->get_var("SELECT * FROM $wpdb->contacts WHERE ID= $post->ID  LIMIT 1");
        $val = !empty($info) ? htmlspecialchars($info->link) : '';
        echo '<textarea name="link" rows="6" cols="30">'.$val.'</textarea>';
    }

导致错误的问题似乎是:$info->link。如果我要更改代码:

function add_map_url($post){

            global $wpdb;
            $info = $wpdb->get_var("SELECT * FROM $wpdb->contacts WHERE ID= $post->ID  LIMIT 1");
            //$val = !empty($info) ? htmlspecialchars($info->link) : '';
            echo '<textarea name="link" rows="6" cols="30">'.$info.'</textarea>';
        }   

它正在运行并提供contacts ID

表格contacts如下:

contacts
ID     link

我无法弄清楚我做错了什么。谢谢你的建议!

1 个答案:

答案 0 :(得分:1)

查询可能没有返回符合给定条件的任何行,换句话说,表中不存在该行。您可以从mysql命令行运行查询,看它是否返回任何内容。您可能希望将empty()调用更改为is_object():

$val = is_object($info) ? htmlspecialchars($info->link) : '';