将PDO::FetchAll()
与PDO::Fetch_Class
结合使用时,我不会将所有对象都恢复原状。只有5个或6个中的一个对象。
示例:
$as_object = 'Model_Menu'; $params = NULL;
$result->setFetchMode(PDO::FETCH_CLASS, $as_object, $params);
$result = $result->fetchAll();
但是使用
$result->setFetchMode(PDO::FETCH_ASSOC);
为我提供了数据库中的所有行。
我正在使用Kohana所以我无法真正向您展示查询本身的整个构建。但相信我它的工作原理,如果fetch assoc确实获得了相同构建的所有结果,它应该可以正常工作吗?
环境:
-Linux ubuntu
-Driver: pdo/mssql/?ORM?
-Framework: Kohana
答案 0 :(得分:2)
也许,因为你传递了第三个参数($params
,它是null),PDO
假定fetchmode为PDO::FETCH_CLASS | PDO::FETCH_INTO
,重新分配$params
并结束。请注意,{<1}}将 不 调用构造函数,直到之后设置所有属性。要首先调用构造函数,需要将获取模式设置为PDO::FETCH_CLASS
。我'git这是一个bash:
PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE
查看文档,我也注意到大多数示例都是这样的:
$result->setFetchMode(
PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE,
$asObject
);
$objects = $result->fetchAll();