php – 允许的内存大小为134217728字节耗尽(尝试分配4294967296字节)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 允许的内存大小为134217728字节耗尽(尝试分配4294967296字节)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的项目使用开 PHP MysqLhttps://github.com/ajillion/PHP-MySQLi-Database-Class

但该项目年中报告:“致命错误:允许内存大小为134217728字节耗尽(试图分配4294967296字节)在/ home1 / flipalbu / public_htML / kvisofttest / login-admin / Lib / class.MysqLiDb.PHP第422行“这个错误,

我的服务器是:linux x86_64

PHP版本5.4.17

MysqL版本:5.5.32

memory_limIT = 128M

第422行:call_user_func_array(array($stmt,’bind_result’),$parameters);

查询部分代码

$db = new MysqLiDb ('LocalHost','root','passwd','DB');
$wqdb = $db-> query ("SELECT * From db_table");
foreach ($wqdb as $row) {
 $con. = $row ['ID'];
}
echo $con;

有什么办法可以解决吗?

/** 错误代码 **/

PRotected function _dynamicBindResults(MysqLi_stmt $stmt)
        {
            $parameters = array();
            $results = array();

            $Meta = $stmt->result_Metadata();

            $row = array();
            while ($field = $Meta->fetch_field()) {
                $row[$field->name] = null;
                $parameters[] = & $row[$field->name];
            }

            call_user_func_array(array($stmt,'bind_result'),$parameters);

            while ($stmt->fetch()) {
                $x = array();
                foreach ($row as $key => $val) {
                    $x[$key] = $val;
                }
                array_push($results,$x);
            }
            return $results;
        }
在这里阅读了这个错误报告: https://bugs.php.net/bug.php?id=51386

你的问题似乎发生了,因为表格的列中有一个longblob或longtext.

longtext / longblob的最大长度为4294967295 [4GB],这就是MysqLi尝试为缓冲区分配内存以确保没有丢失的原因.我建议您使用Mediumtext(16777215 [16MB]最大长度),这应该足够通常.

更新:
因为这个答案已经看到一些活动我从Phil_1984添加了这个解决方案(见评论)

=>如果你使用$stmt-> @R_406_1413@_result(),你可以使用MysqLi和longblob / longtext而不会收到错误.

旧答案:
我建议您将列更改为另一种类型(mediumtext)或使用PDO(我认为它没有这个问题).但是如果你想把列保留为longtext,你必须切换你的MysqL

引自PHP Dev:

脚本宝典总结

以上是脚本宝典为你收集整理的php – 允许的内存大小为134217728字节耗尽(尝试分配4294967296字节)全部内容,希望文章能够帮你解决php – 允许的内存大小为134217728字节耗尽(尝试分配4294967296字节)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。