我有一个非常简单的查询,如下所示:
$result = Doctrine_Query::create()
->select('t.id, t.name, DATE(t.date_start) as date_start, ti.*')
->from('table t')
->leftJoin('t.foreigh_table ti')
->where("(DATE(t.date_start) BETWEEN '$startDate' AND '$endDate')")
->andWhere('t.user='.$userId)
->andWhere('t.is_public=1');
并将查询分配给 DoctrinePager 插件,如下所示:
$this->data = new sfDoctrinePager(null, 7);
$this->data->setQuery($result);
$this->data->setPage($request->getParameter('p', 1));
$this->data->init();
但是,总是抛出“内存不足”:
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 842260576 bytes) in /home/.../lib/vendor/symfony/lib/debug/sfWebDebug.class.php on line 170
我不敢相信 1GB RAM 不足以完成这个简单的查询。
你们有什么想法吗?
更新 终于知道发生了什么。View 中的 print_r() 命令已经消耗了所有内存,只需将其注释掉,一切都会恢复正常。