从PDO返回对象数组

时间:2012-08-28 08:17:40

标签: php mysql pdo

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

e.g。一行等于该类的一个对象。

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

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

1 个答案:

答案 0 :(得分:8)

您可以使用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也很有用,因为它使对象的构造更加一致。 Habitualy你的构造函数在所有事情之前被调用。如果您不使用FETCH_PROPS_LATE,它将在您的属性被水合后调用。