【问题标题】:Returning Array of Objects from PDO从 PDO 返回对象数组
【发布时间】:2012-08-28 08:17:39
【问题描述】:

我有一个 PHP 类 (POJO_FOO),它映射到一个表 (TABLE_FOO)。

例如一行等于该类的一个对象。

现在我正在编写一个管理器,它返回与特定查询匹配的此类对象的数组。使用PDO,如何返回对象数组?

当我做简单的fetchAll 时,它返回关联数组(column => value)的数组(代表结果的数量)。 fetchALL 中是否有一个选项可以以对象数组的形式给我结果?

【问题讨论】:

  • 哇,它有效...不知道为什么我尝试时它不起作用。无论如何..谢谢你的回答。

标签: php mysql pdo


【解决方案1】:

您可以使用 PDO::FETCH_CLASS 为您的课程添加数据:

return $pdo->query('SELECT * FROM tablefoo')->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'POJO_FOO');

使用 PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE 也很有用,因为它使对象的构造更加一致。习惯上,你的构造函数在一切之前被调用。如果您不使用 FETCH_PROPS_LATE,它将在您的属性水合后调用。

【讨论】:

  • 哇,它有效……不知道为什么我尝试时它不起作用。无论如何..感谢您的回答:)
  • 关于 PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE 的一点评论
  • 那会做什么? (FETCH_PROPS_LATE)
  • 我试图解释它: -without PROPS_LATE :PDO 水合你的对象,然后调用构造函数。如果您的构造函数确实调用了一个重要的初始化过程,那么使用 PROPS_LATE 是不好的:PDO 调用您的构造函数然后水合您的对象:这是一致且安全的。
猜你喜欢
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 2018-05-19
相关资源
最近更新 更多