• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-24) 11次浏览 已收录 0个评论

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页释放一次,还不信了这点数据还搞定不了
——解决方案————-、本文来源gao($daima.com搞@代@#码$网搞gaodaima代码——-
只要数据本身不存在问题,分批读和写应该没事的.如果服务器有限制而无法修改参数,你可将数据下载回来本地处理嘛.

探讨

引用:
我没算错的话应该是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
没有必要和你争辩

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php读库生成xml文件解决方案

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址