Codeigniter $ this-> db-> where()不起作用

时间:2012-08-09 19:04:24

标签: php mysql database codeigniter where

$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)的帖子,我也遇到了同样的问题。我做错了什么?

1 个答案:

答案 0 :(得分:2)

当您从数据库中选择多行时,应使用

result(),而是使用row()

在控制器使用中

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

然后在视野中

$query->body

我强烈建议您使用$data['post']$post->body代替$query->body。当您在一个页面上有更多查询时,您的视图会变得混乱。