Php 当返回的数据小于10k时,是什么导致mysqli语句使用4GB内存?

Php 当返回的数据小于10k时,是什么导致mysqli语句使用4GB内存?,php,apache,unix,memory,mysqli,Php,Apache,Unix,Memory,Mysqli,到处找,却找不到答案。。除了“提高PHP内存使用限制”,这在本例中毫无意义。这就是 下面是一段代码(经过编辑以显示我之前在此处输入的代码): 这发生在“mysqli\u stmt\u bind\u result…”行上 到底是什么原因导致它需要超过4GB的内存??你知道怎么摆脱这个吗 添加以显示表格的“描述”: 您的选择按优先顺序排列如下: 将服务器升级到PHP5.4或更高版本。PHP5.4使用不同的MySQL接口库(mysqlnd),它不受此错误的影响 在mysqli\u stmt\u b

到处找,却找不到答案。。除了“提高PHP内存使用限制”,这在本例中毫无意义。这就是

下面是一段代码(经过编辑以显示我之前在此处输入的代码):

这发生在“mysqli\u stmt\u bind\u result…”行上

到底是什么原因导致它需要超过4GB的内存??你知道怎么摆脱这个吗

添加以显示表格的“描述”:

您的选择按优先顺序排列如下:

  • 将服务器升级到PHP5.4或更高版本。PHP5.4使用不同的MySQL接口库(mysqlnd),它不受此错误的影响

  • mysqli\u stmt\u bind\u result()之前调用
    mysqli\u stmt\u store\u result()
    ,以便PHP将整个结果集加载到内存中。但是,请注意,这将要求立即将查询返回的所有数据加载到内存中,这可能会导致大型结果集出现问题

  • 将该列的类型从
    LONGTEXT
    更改为较短的类型。例如,
    MEDIUMTEXT
    的最大大小为16MB,而不是4GB,因此它对内存使用的影响较小


因此,我将对这个答案给予肯定,因为在做了一些研究之后,我们发现:将字段改为“mediumtext”完全解决了这个问题。和。。我倾向于相信这在5.4PHP版本上不会有问题——正如您所提到的。谢谢Duskwuff作为旁注。。。此字段来自Wordpress的“重力表单”插件。为了遗留系统的缘故,我还将向他们报告这个问题。
<?php
define('DB_NAME', "XXXXXX");
define('DB_USER', "XXXXXX");
define('DB_PASS', "XXXXXX");
define('DB_SERVER', "cloud1.XXXXXXXX.com");

// Create connection info
global $dbLink;
$dbLink= mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME) ;

/*------------------------- Retreiving columns names --------------*/

$event_stmt1 = mysqli_prepare($dbLink,"select form_id,display_meta from wp_rg_form_meta order by form_id asc");
mysqli_stmt_execute($event_stmt1);
mysqli_stmt_bind_result($event_stmt1, $id, $display_meta);
Fatal error: Allowed memory size of 805306368 bytes exhausted (tried to allocate 4294967296 bytes)