2012-08-09 80 views
1
$this->db->from('posts'); 
$this->db->where('id',$this->uri->segment(3)); 
$data['query'] = $this->db->get(); 

我试图用where语句获得一个帖子。我运行这段代码时没有遇到任何错误。但在我看来,当我试图让$query->result()->body PHP给我一个错误Trying to get property of non-object.于是我就print_r($query),这是它给了我:

(
    [conn_id] => Resource id #27 
    [result_id] => Resource id #32 
    [result_array] => Array 
     (
     ) 

    [result_object] => Array 
     (
     ) 

    [custom_result_object] => Array 
     (
     ) 

    [current_row] => 0 
    [num_rows] => 0 
    [row_data] => 
) 

我不知道为什么它不会从一开始我的具体职位数据库。我知道我的数据库处于工作状态。我在我的网站的其他地方使用它。我也在我的网站上的其他地方使用$this->db->where(),它的工作原理非常完美。我也尝试插入ID的帖子,而不是$this->uri->segment(3),我也遇到同样的问题。我究竟做错了什么?

回答

2

result()应该在从db中选择多于1行时使用,请使用row()来代替。

在控制器使用

$data['query'] = $this->db->get()->row(); 

然后在视图

$query->body 

我强烈reccomend你使用$data['post']$post->body而不是$query->body。当你在一个页面上有更多的查询时,你的视图会变得混乱。

+0

谢谢,作品完美!我也在使用你的建议。 – user1024742 2012-08-09 20:20:09