编程语言
首页 > 编程语言> > PHP-教义试图分配4GB?

PHP-教义试图分配4GB?

作者:互联网

我将带有Doctrine的Post对象映射到Wordpress使用的wp_posts表.该表中名为post_content的列是一个LONGTEXT,可以包含4GB.

当我尝试从这些表中加载对象时,收到以下消息:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried
to allocate 4294967296 bytes) in
/home/rdinhani/renato/php-lib/DoctrineORM-2.2.2/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php on line 165

在执行查询以加载对象时会发生这种情况(目前,仅返回一行).

因此,Doctrine正在尝试分配4GB来在此列中加载值,但这会导致内存溢出.我在此列中没有太大的值,只有一些文本.

在Doctrine或PHP中有一些配置可以避免尝试将4GB分配给该列,或者将MySQL列中的最大限制设置为一个较小的值,如2MB,10MB等?

解决方法:

Mysqli驱动程序has a bug.

当尝试选择中文本或长文本字段时,它将尝试分配整个字段大小2 ^ 32字节= 4294967296.

解决方案:更改为PDO_Mysql或将medium / longtext字段更改为text字段.

标签:doctrine-orm,wordpress,mysql,php
来源: https://codeday.me/bug/20191201/2079301.html