haoren26 发表于 2011-10-8 10:53:22

query->result()返回值

本帖最后由 haoren26 于 2011-10-8 10:57 编辑

CI version:2.0.3

Environment:WAMP2.1      Windows2003


CI用户手册这样写到:result() 该方法执行成功返回一个对象数组,失败则返回一个空数组。我们使用下面的方法遍历结果,代码就像这样:
$query = $this->db->query("要执行的 SQL");

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}

我的问题是:如果result()只返回一条记录,那我能不能不用遍历的方法来获得result()返回的值 ,而直接<?=$query->title?>
我的实际例子:我在model里这样写
Mblog.php

function get_article($article_id)

{
$this->db->where('id',$article_id);
$query = $this->db->get('article');
return $query->result(); //应该只返回一条记录,因为id是唯一的
}


我在controllers里这样写
Blog.php

$this->load->model('Mblog');

$data['query'] = $this->Mblog->get_article($this->uri->segment(3));
$this->load->view('edit_view',$data);


然后在views里显示
edit_view.php

<input type="text" name="article_title" value="<?=$query->title?>"><!-- 此处及以下,一般会用递归变量$row,而我直接用$query可不可以-->
<textarea rows="20" cols="50" name="article_content"><?=$query->article_content?></textarea>


这样子貌似无法将数据库里取出的数据填入文本框,说什么call in non-object,但是model的方法已经返回一个对象了呀,而且控制器里也用一个数组接收这个对象,传给视图页面了,我就不明白了。。。

jeongee 发表于 2011-10-8 11:19:43

单条不要用result返回,用row返回
对应的要返回数组就是result_array和row_array()

如果非要用result那么就
如$test = $this->db->xxxxxxx->result();
那么第一条就是$test->

haoren26 发表于 2011-10-8 12:18:28

jeongee 发表于 2011-10-8 11:19 static/image/common/back.gif
单条不要用result返回,用row返回
对应的要返回数组就是result_array和row_array()



谢谢!
页: [1]
查看完整版本: query->result()返回值