我有一个PHP类(POJO_FOO
),它映射到一个表(TABLE_FOO
)。
e.g。一行等于该类的一个对象。
现在我正在编写一个管理器,它返回与特定查询匹配的此类对象的数组。使用PDO
,如何返回对象数组?
当我执行简单fetchAll
时,它返回关联数组(column
=> value
)的数组(表示结果数)。 fetchALL
中有一个选项可以以对象数组的形式给出结果吗?
答案 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,它将在您的属性被水合后调用。