可能重复:
Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 bytes) in php
我在这里看到过类似的问题,但我的情况完全不同。我正在从数据库中读取并写入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 />.
解决方案应该是什么?我是否增加了代码中的内存大小?有什么帮助吗?
答案 0 :(得分:13)
尝试在php.ini
中增加或删除memory_limit。
查找类似的内容并更改memory_limit的值
; 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_value memory_limit 128M
(128M只是一个例子)
注意:对于共享主机,我非常怀疑你可以改变内存限制。
答案 1 :(得分:3)
执行mysql_unbuffered_query()
而不是mysql_query()
。您的查询可能返回的数据太多,因为您的php服务器需要处理。