Codeigniter 数据库结果 - 对象还是数组?

Posted

技术标签:

【中文标题】Codeigniter 数据库结果 - 对象还是数组?【英文标题】:Codeigniter Database results - Objects or Arrays? 【发布时间】:2013-05-18 19:36:43 【问题描述】:

我使用 Codeigniter 已经有一段时间了,我经常想知道哪个/是否使用 Codeigniter 的

$query->result()$query->result_array()

就个人而言,我倾向于坚持使用数组,因为我发现操作数组和推送项目等更容易。唯一让我有点恼火的是在视图中简单或编写语句,例如

$row->title$row['title'] 更简洁易读

但是

另一方面,$row->0 不是 $row[0]

我仍然不知道该走哪条路,如果有人能告诉我使用对象而不是数组的更多好处,我会很高兴!

【问题讨论】:

如果你喜欢 OOPS 而不是对象有优势 这完全取决于您 - 如果您更喜欢使用数组,请坚持使用它们,如果您更喜欢 OOP,对象会更好看。 随便挑一个。无论您想使用哪个都可以。另外,你为什么要使用$row->0$query->result() 返回一个对象数组 如果您曾经有一个名为数字的数据库列,例如0 | 1 | 2(无论出于何种原因 - 我已经使用了一些奇怪的 API!)然后你需要使用上面的括号示例来引用 【参考方案1】:

我更喜欢对象,但在需要对所有(或某些)列执行某些检查或操作的情况下,使用数组可以减少混乱:

foreach ($row as $column => $value)  
  if ($value == null) 
    // oh no!  null!
  


// check these columns and make sure they're non-negative
$non_negative = array('amount_paid', 'income');

foreach ($non_negative as $column) 
  if ($row[$column] < 0) 
    // less than zero?  what a bum.
  

【讨论】:

以上是关于Codeigniter 数据库结果 - 对象还是数组?的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter - 数据库结果数组,但只有一行

没有foreach循环的codeigniter单个结果

Codeigniter查询结果返回带有setter的自定义结果对象

Codeigniter 获取数据错误:尝试获取非对象的属性

Codeigniter Active Record - 计算找到的总行数(MySQL)

codeigniter echo 查询结果数组