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的方法已经返回一个对象了呀,而且控制器里也用一个数组接收这个对象,传给视图页面了,我就不明白了。。。
单条不要用result返回,用row返回
对应的要返回数组就是result_array和row_array()
如果非要用result那么就
如$test = $this->db->xxxxxxx->result();
那么第一条就是$test-> jeongee 发表于 2011-10-8 11:19 static/image/common/back.gif
单条不要用result返回,用row返回
对应的要返回数组就是result_array和row_array()
谢谢!
页:
[1]