PDO FetchAll Fetch_Class不返回所有行/对象

时间:2014-12-15 09:46:40

标签: php pdo kohana

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

1 个答案:

答案 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();