从PDO返回对象数组

mrd*_*081 7 php mysql pdo

我有一个PHP class(POJO_FOO),它映射到一个表(TABLE_FOO).

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

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

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

art*_*gis 8

你可以使用PDO :: FETCH_CLASS用你的数据来保湿你的课程:

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

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