1

我从那里使用 MysqliDb 类。

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');
4

2 回答 2

3

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

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

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

于 2013-04-02T13:02:57.873 回答
-1

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

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

建议:

  • 检查您是否正在创建一个无限循环,该循环试图加载大量信息(不仅在该类中,而且在您自己的代码中调用之前)。
  • 使用较轻的mysqli类(您是否尝试过 PHP 5 默认提供的类)?
  • 检查您的问题是否可以通过另一种方式(可能是异步的?对于网站来说内存量太大),更轻松的方式解决,可能使用另一种语言(如 C 或 C++)来释放 Apache 的负载。
  • 与您的托管服务提供商交谈并尝试说服他们让您加载 4.2 Gb 的数据。
于 2013-04-02T12:12:34.397 回答