尝试使用MySQLi时内存大小耗尽

时间:2013-04-02 12:01:26

标签: php mysqli

我正在使用MysqliDb Class。

https://github.com/ajillion/PHP-MySQLi-Database-Class/blob/master/MysqliDb.php

当我在本地电脑上使用时,我没有任何问题。但我昨天买了东道主。我在大约5分钟前上传了我的文件并且无法正常工作。我检查了我的主机并创建了error_log文件并且这个..

PHP Fatal error:  Allowed memory size of 75497472 bytes exhausted (tried to allocate 4294967296 bytes) in /home/(..)/MysqliDb.php on line 417

这是什么问题?

我在配置文件中使用了这段代码。但同样没有用。

ini_set('memory_limit', '192M');

2 个答案:

答案 0 :(得分:3)

我认为您在数据库中使用的是LongText。

请阅读以下消息:https://bugs.php.net/bug.php?id=51386

所以在bind_result之前尝试mysqli::store_result

答案 1 :(得分:-1)

影响服务器限制的

ini_set命令往往会被阻止(因此,您可能只能使用与显示错误相关的命令)。

请记住,您正在尝试分配4.2 Gb,这对于网站来说是相当多的信息。

建议:

  • 检查您是否正在创建一个无限循环,尝试加载大量信息(不仅在该类中,而且在您自己的代码中调用之前)。
  • 使用较轻的mysqli课程(你试过the one that comes by default with PHP 5)吗?
  • 检查你的问题是否可以在另一个问题上解决(可能是异步的?内存量对于网站而言是疯狂的),更轻松的方式,可能使用其他语言(如C或C ++)来释放Apache的负载。
  • 与您的托管服务提供商联系并尝试说服他们让您加载4.2 Gb的数据。