Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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“;“内存不足”;在codeigniter中的模型中加载模型时出错_Php_Codeigniter_Out Of Memory - Fatal编程技术网

PHP“;“内存不足”;在codeigniter中的模型中加载模型时出错

PHP“;“内存不足”;在codeigniter中的模型中加载模型时出错,php,codeigniter,out-of-memory,Php,Codeigniter,Out Of Memory,在另一个模型中加载模型时,我遇到以下PHP错误: Fatal error: Out of memory (allocated 74448896) (tried to allocate 65484 bytes) in /homepages/8/d315990455/htdocs/smileyou/Smileyou2.0/system/core/Loader.php on line 9 我的PHP内存限制是120M(我想这对于我正在开发的应用程序来说已经足够了)。 为了调整应用程序的大小,我使用了

在另一个模型中加载模型时,我遇到以下PHP错误:

Fatal error: Out of memory (allocated 74448896) (tried to allocate 65484 bytes)
in /homepages/8/d315990455/htdocs/smileyou/Smileyou2.0/system/core/Loader.php on line 9
我的PHP内存限制是120M(我想这对于我正在开发的应用程序来说已经足够了)。 为了调整应用程序的大小,我使用了11个模型,每个模型中平均有4-5个函数。每行150-200行代码

我已经读到在CodeIgniter的模型中加载模型(我总是在类构造函数中这样做)不是一个好的实践,但是直到现在,一切都很好。。。 编辑:如果我尝试在函数中加载它们,而不是在类构造函数中加载它们,它也不会工作


有没有人经历过同样的问题?任何帮助都将不胜感激。提前感谢。

我不熟悉CI活动记录的实现,尽管它是一个过时的PHP4框架。在运行密集型数据库查询并为这些结果生成活动记录模型的情况下,请尝试使用原始数据库查询:

正如我所说,我不熟悉CI,尽管我快速浏览了一下文档。。您应该能够执行以下操作:

return $this->db
        ->select($array)
        ->from('user')
        ->join('other','other.user_id = user.id','left')
        ->where($where)
        ->get()
        ->result();   

好吧,经过艰苦的调试代码,我已经让它工作。。。我将其记录在社区中,仅供记录:

似乎(我猜)CodeIgniter在模型内的嵌套模型加载级别上有一个限制

正如我所说,在我的例子中,我有11个模型(每个模型对应一个数据库表)。 我必须编写的算法需要大量的“嵌套”,因为例如,我的许多模型函数可能需要其他模型的4/5函数,而这反过来又需要其他模型的函数。。。等等

因此,在这种情况下,我通过(硬)挖掘算法来修复它,并且不加载某些模型(那些产生内存泄漏的模型),即使某些函数需要它们,因为(我猜)它们已经加载到“调用”(前面的)模型中

这对我很管用。 顺便说一句,我接受任何更优雅的方法来在CodeIgniter中实现这样一个复杂的算法。所以请随意发布


谢谢。

我也面临同样的问题将php.ini中的内存限制从8M增加到256M。检查内存限制,并根据需要进行调整。

对于具有更好活动记录的现代php 5框架,请尝试Laravel 4.0,其雄辩的模型性能非常好。。。