3

我将一个带有 Doctrine 的 Post 对象映射到wp_postsWordpress 使用的表。post_content此表中调用的列是LONGTEXT可以包含 4GB 的列。

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

致命错误:第 165 行 /home/rdinhani/renato/php-lib/DoctrineORM-2.2.2/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php 中允许的内存大小为 268435456 字节(试图分配4294967296字节)

这发生在执行查询以加载对象时(目前,只会返回一行)。

因此,Doctrine 试图分配 4GB 来加载该列内的值,但这会溢出内存。我在此列中没有大值,只有一些文本。

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

4

1 回答 1

3

Mysqli 驱动程序有一个错误

当尝试选择 mediumtext 或 longtext 字段时,它会尝试分配整个字段大小 2^32 字节 = 4294967296。

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

于 2012-06-12T08:34:58.780 回答