CodeIgniter - 数据库结果数组但只有一行

时间:2012-04-20 14:07:05

标签: php database arrays codeigniter row

我正在寻找一种从数据库查询返回数组的方法,但仅限于第一行。我不想使用对象..

我目前的解决方案:

//Gather
$data = $this->db->from('view')->where('alias', $alias)->get()->result_array();

//Collect the first row only
$data = $data[0];

说实话,这真是太丑了。如上所述,我宁愿不使用对象。

4 个答案:

答案 0 :(得分:7)

请改用row()方法:

$data = $this->db->from('view')->where('alias', $alias)->get()->row();

[哦,你不想使用对象。 row_array()然后。但请考虑对象。]

答案 1 :(得分:2)

你可以这样做:

$data = $this->db->from('view')->where('alias', $alias)->get()->row_array();

这与minitech的回答相同,只是它返回一个数组(你想要的)而不是一个对象。

答案 2 :(得分:0)

您可以使用row_array()函数从单行中获取数据。将该行指定为参数。

例如,要获取结果的第一行,请执行以下操作:

$this->db->from('view')->where('alias', $alias)->get()->result_array(0);

答案 3 :(得分:0)

如果您只想将第一行作为数组获取,您也可以使用此代码:

$data = $this->db->from('view')->where('alias', $alias)->get()->first_row('array');

但是如果你真的只想获得1个结果,那么总是使用select('TOP 1 ....'),因为这种方法可以提高你的查询返回时间性能。当你直接使用get()时,它会尝试返回整个数据,而不仅仅是第一行。然后它显示了你想要的东西(第一排)。但是如果你使用TOP 1方法;这是最好的。