Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 写入xml文件时允许的内存大小为67108864字节(尝试分配4459414字节)_Php_Xml - Fatal编程技术网

Php 写入xml文件时允许的内存大小为67108864字节(尝试分配4459414字节)

Php 写入xml文件时允许的内存大小为67108864字节(尝试分配4459414字节),php,xml,Php,Xml,可能重复: 我在这里也看到过类似的问题,但我的问题完全不同。我正在从数据库中读取数据并写入xml文件。我得到这个错误 <b>Fatal error</b>: Allowed memory size of 67108864 bytes exhausted (tried to allocate 4459414 bytes) in <b>.../public/home/..</b> on line <b>32</b><b

可能重复:

我在这里也看到过类似的问题,但我的问题完全不同。我正在从数据库中读取数据并写入xml文件。我得到这个错误

<b>Fatal error</b>:  Allowed memory size of 67108864 bytes exhausted (tried to allocate 4459414 bytes) in <b>.../public/home/..</b> on line <b>32</b><br />.
致命错误:在…/public/home/中,允许的内存大小为67108864字节(尝试分配4459414字节)。。第32行

解决方案应该是什么?我是否增加代码中的内存大小?有什么帮助吗?

做一个
mysql\u无缓冲查询()
而不是
mysql\u查询()
。您的查询返回的数据可能太多,php服务器无法处理。

请尝试在
php.ini
中增加或删除内存限制

找到类似的内容并更改内存限制的值

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M
(这是我的php.ini的一部分)

保存更改后重新启动服务器

此外,您还可以尝试从代码中删除限制

例如:

ini_set('memory_limit', '-1');
这应该行得通

另一种方法是通过添加以下行从.htaccess文件设置内存限制:

php_值内存_限制128M

(128M只是一个例子)


注意:对于共享主机,我非常怀疑您是否可以更改内存限制。

增加内存是一种解决方案(直到您下次遇到相同的问题时遇到),或者尝试确定您的脚本首先使用如此多内存的原因。。。您使用什么来编写xml?您是否正在将所有数据库检索到的行加载到一个数组中?请指出您的问题不同的原因。该错误的原因和解决方案通常是相同的:您的脚本由于某种原因耗尽了内存。您可以修复脚本以消耗更少的内存,也可以增加内存限制。另请参阅@karto-在这种情况下,如果可以,请在每次获取行时写入xml以减少内存。。。否则,整个阵列都将处于memory@MarkBaker:尝试了@PVM建议的mysql\u unbuffered\u query(),效果很好。请解释一下mysql\u unbuffered\u query()的情况mysql\u unbuffered\u query()一次只能从数据库的结果集中获取一条记录,因此,php只需将少得多的数据存储到内存中。mysql_query()将整个结果集提取到内存中。文档位于:+1
ini_集('memory_limit','-1')快速和肮脏,但工作!;)