【发布时间】:2017-02-08 17:08:11
【问题描述】:
自从我升级到 PHP7 后,我注意到一些 SQL 语句不再有效,而是内存不足。
我有这个代码:
$query = Yii::$app->db->createCommand('select * from tbl_title')->query();
while ($row = $reader->read()) {
var_dump($row);
exit();
}
Yii2 的数据库抽象只是 PDO 之上的一个非常薄的层,并没有做任何额外的事情。 query() 除了在日志文件 (Yii2's) 中添加一行用于分析之外没有做任何额外的事情,reader->read() 只是调用 PDO 流的 fetch() 函数。
但是引用我的表的大小(已用空间),它的内存不足,即尝试分配 385 MB 的进程内存:
允许内存大小134217728字节用尽(尝试分配385883840字节)
作为一个扳手,如果我使用其结果集完全符合 PHP 进程的 128 MB 限制的查询。
那么,PHP7 变了,我可以改回来吗?
【问题讨论】: