我试图从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。
你们有没有人建议如何阅读大量的记录?
谢谢