php读库生成xml文件解决方案

php中文网
发布: 2016-06-13 13:39:07
原创
1150人浏览过
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
没有必要和你争辩

既然是 服务器我没权限 ,那么也就无所谓命令行执行了
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号