执行php程序的时候,报错Allowed memory size of 134217728 bytes exhausted (tried to allocate 83 bytes)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行php程序的时候,报错Allowed memory size of 134217728 bytes exhausted (tried to allocate 83 bytes)相关的知识,希望对你有一定的参考价值。

执行php程序时,会报下面的错误

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 83 bytes) in /mnt/Change/www/html/data/conn.php on line 18


 

第一种方法:不推荐

修改php配置文件php.ini,memory_limit的值改大,但是不建议这么做,因为无论修改的再大,有可能还是会报这个错误,因为不知道运行这个php代码到底需要多少内存

 

第二种方法:推荐

一般都是一次赋值给变量的内容过多,比如把一张1GBmysql表的内容一次性复制给一个变量,这样肯定会导致运行内存超过了配置文件中限制的大小

 

解决方法

//第一步:先计算出这张表里有多少记录
$sql=‘select count(*) as num  from table_name ‘;
$Num_Res=Sql_Query($sql);
//第二步:使用for循环和limit限制一次性取多少条内容,比如一次取100条记录
$Num=$Num_Res[0][‘num‘];
for($i=0;$i<$Num;$i+=100)
{
$a="select * from table_name limit $i,100";
//具体的其他操作
}

注意:Sql_Query()是我自定的方法,大家主要看的还是思路


本文出自 “技术” 博客,请务必保留此出处http://hywds.blog.51cto.com/13158032/1958039

以上是关于执行php程序的时候,报错Allowed memory size of 134217728 bytes exhausted (tried to allocate 83 bytes)的主要内容,如果未能解决你的问题,请参考以下文章

mysql load local data infield 报错 ERROR 1148 (42000): The used command is not allowed with this MyS

R执行报错:Error in `[<-.ts`(`*tmp*`,...only replacement of elements is allowed

解决MySQL数据导入报错Got a packet bigger than‘max_allowed_packet’bytes

MySQL报错:Packets larger than max_allowed_packet are not all

mysql 案例 ~ 程序端报错案例

报错:1130-host ... is not allowed to connect to this MySql server