2012-08-28 88 views
7

我有一个PHP类(POJO_FOO),它映射到一个表(TABLE_FOO)。从PDO返回数组对象

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

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

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

+3

'PDO :: FETCH_CLASS'? – eggyal

+0

哇它的作品...不知道为什么它不工作时,我尝试了。反正..谢谢你的答案。 – mrd081

回答

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因为它使对象的构造更是一致的。习惯你的构造函数在一切之前被调用。如果你不使用FETCH_PROPS_LATE,它会在你的属性被水化之后调用。

+0

哇它的作品...不知道为什么它不工作时,我尝试了。反正..谢谢你的答案:) – mrd081

+0

关于PDO :: FETCH_CLASS | PDO :: FETCH_PROPS_LATE – artragis

+0

litle评论会做什么? (FETCH_PROPS_LATE) – mrd081