我是CodeIgniter的新手。我喜欢它,它很棒,但有一个问题几天都无法解决。
我正试图通过它的id得到一行,如下所示:
$query = $this->db->get_where('content', ['id' => $id]);
$the_content = $query->result_array();
但是,它会产生一个大小为1的数组,如下所示:
$the_content = [ 0 => ['id' => 1, 'content'=> 'abc']];
所以我总是要把它转换成第一个这样的元素:
$the_content= $the_content[0];
但你可以理解为什么我不喜欢这个。
我也试过$query->result();
,仍然是一样。
我确定我在这里错过了一个简单的观点,但是什么?
如何从ActiveRecord而不是数组中获取单个元素?
答案 0 :(得分:3)
解决方案是:
$the_content = $query->row_array();
返回单维数组。要检索你会写:
echo $the_content['content'];
答案 1 :(得分:3)
使用first_row()
:
$row = $query->first_row();
如果你想要一个数组:
$row = $query->first_row('array')
或者,如果您想要返回特定行,您可以在第一个参数中将行号提交为数字:
$row = $query->row_array(3);
如果你想得到第一行的字段:
$field = $query->first_row()->field;
echo $field;
请参阅文档here。
答案 2 :(得分:1)
有一个函数可以从查询中获取第一行:
$the_content = $query->first_row('array')
参考:http://ellislab.com/codeigniter/user-guide/database/results.html