php写xml文件报错,php读库生成xml文件解决方案

php读库生成xml文件

话说库里有60多W条记录,用php+mysql循环读库,生成xml文件。

现在准备每个xml页面存1000条记录,那就是生成60多页xml文件。

现在问题来了:每次生成xml文件到13页的时候 也就是读库里134000条的时候,页面就报错了:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 80 bytes)

求大牛 帮忙看下 这是怎么回事? 该怎么处理? 如何让他顺利生成完所有页面

祝好心人一生平安!

------解决方案--------------------

分配的内存不够用了,修改php.ini 找到memory_limit = 128M 改大一点

------解决方案--------------------

超过php.ini配置文件中memory_limit设置的内存限制了(默认值是128MB,134217728字节)。128兆已经够多了,估计你的代码有问题,循环的时候都是每1000条记录保存到一个变量?可以改为每读取1000条变量保存到一个PHP变量,然后写xml文件,再读取1000条变量,保存到同一个变量,再写xml文件。。。

------解决方案--------------------

内存超过限制了,可以试着调高php.ini中的内存限制。

最好还是增加循环读取次数,而且每次循环结束时unset() mysql_free_result()释放不需要的内存

------解决方案--------------------

把关键代码发上来看看。

------解决方案--------------------

探讨

确定是这样么,如果不改服务器配置文件,还有其他办法吗?

------解决方案--------------------

探讨

内存超过限制了,可以试着调高php.ini中的内存限制。

最好还是增加循环读取次数,而且每次循环结束时unset() mysql_free_result()释放不需要的内存

------解决方案--------------------

内存不够了呗,

方法是:

1.增大程序可以使用的内存 ini_set('memory_limit', '???M');

2.减少程序已经使用的内存, 看你的code

------解决方案--------------------

我没算错的话应该是600多页吧

用mysql_free_result()释放结果集而不是mysql连接,10页释放一次,还不信了这点数据还搞定不了

------解决方案--------------------

只要数据本身不存在问题,分批读和写应该没事的.如果服务器有限制而无法修改参数,你可将数据下载回来本地处理嘛.

探讨

引用:

我没算错的话应该是600多页吧

用mysql_free_result()释放结果集而不是mysql连接,10页释放一次,还不信了这点数据还搞定不了

大哥你说的对 是600多页 但大哥你确定可以搞的定?

------解决方案--------------------

探讨

现在问题来了:每次生成xml文件到13页的时候 也就是读库里13000条的时候,页面就报错了:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to a……

------解决方案--------------------

贴出代码瞧瞧就知道

------解决方案--------------------

另外一个可能的情况,你查询数据库返回的结果集中记录的平均长度比较巨大(比如记录平均总长度超过120KB)。可以尝试用mysql_unbuffered_query代替mysql_query。

------解决方案--------------------

探讨

504 Gateway Time-out

--------------------------------------------

nginx/0.6.35

------解决方案--------------------

504 Gateway Time-out 是超时了

不是 php 超时,而是 nginx超时。因为你在处理期间一直没有echo

DOMDocument 非常消耗内存

对于你的应用不见得合适

你可贴出 xml 结构看看,可能在 SQL 中可组装完成

------解决方案--------------------

关于 504 Gateway Time-out 你可以看看这些 http://www.google.com.hk/search?client=aff-cs-360chromium&ie=UTF-8&q=504+Gateway+Time-out

没有必要和你争辩

既然是 服务器我没权限 ,那么也就无所谓命令行执行了

相关文章

相关视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值