【问题标题】:Codeigniter: Produce Array instead of Object in Active RecordCodeigniter:在 Active Record 中生成数组而不是对象
【发布时间】:2016-02-04 11:30:35
【问题描述】:

我希望 Codeigniter 在活动记录中生成数组结果,就像 mysql_fetch_array() 在标准 PHP 中所做的那样。

假设,我们的 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'

我不知道这是否可以做到。如果有人想帮助解决这个问题,我将非常感激。

【问题讨论】:

标签: php codeigniter activerecord


【解决方案1】:

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

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

result() 将返回对象格式的行。

result_array() 会将行返回为数组格式。

请探索CodeIgniter Generating Query Results

【讨论】:

  • 感谢您的回复。这种方法效果很好,但不能产生我想要的。 result_array() 将生成一个 associative arrayindexed array 是我需要的。但它可以被 php 函数欺骗:array_values()。但是不知道会不会出现性能问题。
【解决方案2】:

你可以使用

$r = $q->result_array();

或者你可以使用

$r = $q->row_array(); 

只检索一项。

查看官方文档了解更多信息:

http://www.codeigniter.com/user_guide/database/results.html

问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-23
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2011-07-10
    • 2014-12-24
    相关资源
    最近更新 更多