我正在寻找一种从数据库查询中返回数组的方法,但仅限于第一行。我宁愿不使用对象..
我目前的解决方案:
//Gather
$data = $this->db->from('view')->where('alias', $alias)->get()->result_array();
//Collect the first row only
$data = $data[0];
老实说,这很丑陋。如前所述,我宁愿不使用对象。
我正在寻找一种从数据库查询中返回数组的方法,但仅限于第一行。我宁愿不使用对象..
我目前的解决方案:
//Gather
$data = $this->db->from('view')->where('alias', $alias)->get()->result_array();
//Collect the first row only
$data = $data[0];
老实说,这很丑陋。如前所述,我宁愿不使用对象。
请改用以下row()
方法:
$data = $this->db->from('view')->where('alias', $alias)->get()->row();
[哦,你不想使用对象。row_array()
然后。但考虑对象。]
你可以这样做:
$data = $this->db->from('view')->where('alias', $alias)->get()->row_array();
这与 minitech 的答案相同,只是它返回一个数组(如您所愿)而不是一个对象。
您可以使用 row_array() 函数从单行中获取数据。将该行指定为参数。
例如,要获取结果的第一行,请执行以下操作:
$this->db->from('view')->where('alias', $alias)->get()->result_array(0);
如果您只想将第一行作为数组获取,您也可以使用以下代码:
$data = $this->db->from('view')->where('alias', $alias)->get()->first_row('array');
但是如果你真的只想得到 1 个结果,总是使用 select('TOP 1 ....') 因为这个方法提高了你的查询返回时间性能。当您直接使用 get() 时,它会尝试返回整个数据,而不仅仅是第一行。然后它显示你想要的(第一行)。但是如果你使用 TOP 1 方法;这是最好的。