Doctrine 2 - iterate() - 白屏错误

时间:2016-02-17 22:14:37

标签: php symfony loops pdo doctrine-orm

我试图从Symfony 2中获取大量来自数据库的记录(大约30 000个结果)。在Symfony中有一个Doctrine数据库层(Doctrine ORM& Doctrine DBAL)。我需要将这些记录导出到Excel工作表文件中。 我试着这样做:

// $em is EntityManger
$query = $em->createQuery("SELECT r FROM SystemBundle:RecipientWithStatistic r");
$iterableResult = $query->iterate();
// ... $iterableResult->next();

但我看到一个白色的屏幕。

当我试着写:

echo "before query\n";
$query = $em->createQuery("SELECT r FROM SystemBundle:RecipientWithStatistic r");
echo "before iterable\n";
$iterableResult = $query->iterate();
echo "before next\n";
// ... $iterableResult->next();

我在输出中看到了:

before query
before iterable

我想导出(以任何方式)数据并将其写入Excel表格。我知道在PHP中存在PDO数据层,我之前尝试过类似的东西,它起作用了:

$pdo = new PDO(...);
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$result = $pdo->query("SELECT ...");
while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) {
    echo $row[...];
}

但上述解决方案的问题是我不能在Symfony应用程序中使用普通的PDO。

你们有没有人建议如何阅读大量的记录?

谢谢

0 个答案:

没有答案