首页 > 解决方案 > 如何修复内存耗尽的postgresql

问题描述

实际上我有一个服务器来获取数据以显示给客户。我使用: - PHP 7.2.14 - PostgreSQL - PDO

但是几天以来,我遇到了一个 PHP 错误:

[2019 年 10 月 28 日 08:58:51 Europe/Paris] PHP 致命错误:在线 C:\wamp64\www\src\System\Doctrine.php 中允许的内存大小为 134217728 字节已用尽(试图分配 20480 字节) 122

[2019 年 10 月 28 日 08:58:51 欧洲/巴黎] PHP 9. PDOStatement->fetchAll() C:\wamp64\www\src\System\Doctrine.php:122

我在互联网上寻找解决我的问题,但我没有看到任何帮助我...

我已经尝试设置memory_limit为-1,但没有任何改变。

在这里,你可以看到我的 Doctrine 第 122 行。

    public function getAllWhere($tableName, $refCol, $refVal) {
        $r = $this->web->prepare("SELECT * FROM $tableName WHERE $refCol = :val");
        $r->bindValue(':val', $refVal, PDO::PARAM_STR);
        $r->execute();
        $res = $r->fetchAll();

        return $res;
    }

在我的数据库中,表内有 1,500,000 行。

我认为FetchAll是有罪的。

标签: phppostgresqlmemory

解决方案


在以下位置更新您的 php.inimemory_limit directive.

把它放在你的php.ini

memory_limit=1024M并通过此语法或手动重新启动 apache:

sudo systemctl restart httpd.service

推荐阅读