php – 允许的内存大小为134217728字节耗尽(尝试分配4294967296
我的项目使用开源
PHP MySQL库
https://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]最大长度),这应该足够通常. 更新:
=>如果你使用$stmt-> store_result(),你可以使用mysqli和longblob / longtext而不会收到错误. – 旧答案: 引自PHP Dev:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |