Codeigniter:在活动记录中生成数组而不是对象

wnrlj8wa  于 2023-05-20  发布在  其他
关注(0)|答案(4)|浏览(168)

我希望Codeigniter在活动记录中产生数组结果,就像标准PHP中的mysql_fetch_array()一样。
比如说,我们在mysql数据库中有一个表,叫做students。

+-----+------+
| id  | name |
+-----+------+
|  1  | Elto |
|  2  | John |
+------------+

这就是条件。
我以分离的方式生成查询。就像是:

$this->db->select('id, name');
$this->db->order_by('name', 'asc');
$q = $this->db->get('students');
$r = $q->result();

$r将产生:

[0] (name => 'Elto')
[1] (name => 'John')

相反,我希望查询生成如下内容:

[0][0] => 'Elto'
[1][0] => 'John'

我不知道这能不能做到。如果有人想帮助这个问题,我将非常感激。

rggaifut

rggaifut1#

您只需要使用result_array()而不是result()

$this->db->select('id, name');
$this->db->order_by('name', 'asc');
$q = $this->db->get('students');
$r = $q->result_array();

result()将以Object格式返回行。
result_array()将返回数组格式的行。
请浏览**CodeIgniter Generating Query Results**

9avjhtql

9avjhtql2#

你可以用

$r = $q->result_array();

或者你可以用

$r = $q->row_array();

只检索一个项目。
查看官方文档了解更多信息:
http://www.codeigniter.com/user_guide/database/results.html
问候。

pqwbnv8z

pqwbnv8z3#

Codeigniter 4:

$r = $q->getResultArray();
mwngjboj

mwngjboj4#

要确保第一级不仅包含索引数组,而且每行都包含索引元素,请在SELECT语句中对name列应用数字别名,然后使用result_array()getResultArray()(取决于CI版本)。
根据数据库驱动程序的不同,别名引号字符可能会有所不同。在我运行firebird的应用程序上进行了测试,正确呈现了双引号数字别名。

return $this->db
            ->select('name AS "0"')
            ->order_by('name', 'ASC')
            ->get('students')
            ->result_array();

将返回由单元素索引数组组成的索引数组。

[
    [0 => 'Elto'],
    [0 => 'John'],
]

相关问题