1

我是 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 而不是数组中获取单个元素?

4

3 回答 3

3

使用first_row()

$row = $query->first_row();

如果你想要一个数组:

$row = $query->first_row('array')

或者,如果您想要返回特定行,您可以将行号作为第一个参数中的数字提交:

$row = $query->row_array(3);

如果要获取第一行的字段:

$field = $query->first_row()->field;
echo $field;

请参阅此处的文档。

于 2013-09-25T12:45:25.743 回答
3

解决方案是:

$the_content = $query->row_array();

返回一维数组。要检索你会写:

echo $the_content['content'];
于 2013-09-25T12:43:58.367 回答
1

有一个函数可以从查询中获取第一行:

$the_content = $query->first_row('array')

参考:http ://ellislab.com/codeigniter/user-guide/database/results.html

于 2013-09-25T12:42:47.923 回答