3

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

我目前的解决方案:

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

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

老实说,这很丑陋。如前所述,我宁愿不使用对象。

4

4 回答 4

9

请改用以下row()方法:

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

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

于 2012-04-20T14:10:12.203 回答
3

你可以这样做:

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

这与 minitech 的答案相同,只是它返回一个数组(如您所愿)而不是一个对象。

于 2012-04-20T14:10:51.900 回答
0

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

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

$this->db->from('view')->where('alias', $alias)->get()->result_array(0);
于 2012-04-20T14:15:04.670 回答
0

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

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

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

于 2015-10-29T19:37:01.097 回答