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

澳门新葡亰3522平台游戏 2
php中sql查询会抛出错误:Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 4488 bytes) 

解决这个问题,首先需要查看你的程序是否分配了过多的内存,在程序没有问题的情况下,你可以通过一下方法来增加PHP的内存限制(memory_limit)。

你的服务器/空间问题。设置服务器或找空间商修改:

检查php的内存限制值

PHP对脚本记忆体空间限制的缘故。默认设定为
8MB,而有些以前的脚本,会要求使用超过 8MB 的内存空间,只要加大 8MB
的使用限制即可。

为了查看这个值,你需要建立一个空的php文件,比如view-php-info.php。然后将一下代码贴到里面。

澳门新葡亰3522平台游戏,加大 8MB 内存使用限制,方法有二,选其一即可:

<?php phpinfo(); ?>

方法一:修改 php.ini 里的 memory_limit 的设置值 8M 改为
120M:memory_limit = 120M

将这个脚本放到你的Web服务器上,然后在浏览器中调用它。这时你可以看到你的PHP环境配置的信息,其中有一部分是关于“memory_limit”的,
如下图:

方法二:在最上层的 PHP Script,加入一行:ini_set(memory_limit,120M);

澳门新葡亰3522平台游戏 1

注:如果扩大到 120M 仍然相同的错误发生,则再加大 120M 限制。

注:你可以用这种方法来查看php的其他参数设置,不仅仅是memory_limit

memory_limit应该设为多少?

这个完全依赖于你的应用的要求。比如Wordpress,运行起核心代码需要32MB。Drupal
6则要求这个值最小为16MB,并推荐设置为32MB。如果你又安装不少的插件(plugins),尤其是那些要进行图像处理的模块,那么你可能需要128MB或更高的内存。

如何设置memory_limit

方法1: php.ini

最简单或常用的方法是修改php.ini

1.首先找到对你的网站生效的php.ini文件
由于有多个地方都可以设置php的参数,找到正确的配置文件,并进行更改是首先要做的一步。如果你上面的方法建立了php文件来查看其配置参数,则你可以找到“Loaded
Configuration File”这一项,以下是个例子:

澳门新葡亰3522平台游戏 2

对于Linux用户,你可以通过执行“php -i | grep Loaded Configuration
File”来找到对应的配置文件。而Windows用户,你可以尝试修改你的php安装目录下的php.ini。