我正在寻找一种从数据库查询返回数组的方法,但仅限于第一行。我不想使用对象..
我目前的解决方案:
//Gather
$data = $this->db->from('view')->where('alias', $alias)->get()->result_array();
//Collect the first row only
$data = $data[0];
说实话,这真是太丑了。如上所述,我宁愿不使用对象。
答案 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方法;这是最好的。