执行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()是我自定的方法,大家主要看的还是思路