在yii中使用with
命令会给出内存错误。当我使用3个表时,它可以正常工作。当我添加第4个然后它开始在服务器上给出错误。在本地它可以正常工作
$criteria->with = array('users0','businessUnits','skills','questions');
$criteria->together = true;
$models = Company::model()->findAll($criteria);
它出错Allowed memory size of 100663296 bytes exhausted (tried to allocate 32 bytes) in
答案 0 :(得分:0)
问题 - 致命错误:允许的内存大小为33554432字节耗尽
致命错误的原因:X字节的允许内存大小耗尽
最近我的一个php应用程序遇到了这个错误。像任何其他程序员一样,我想用谷歌搜索这个问题。
经过一些研究后,我发现由于某种原因,我的脚本占用了所有的内存空间。正如我在共享主机&服务器管理员已禁用ini_set。除了找到问题的根本原因之外别无其他选择。
不正确的解决方案:增加内存等解决方案并不是正确的解决方案。通过这个你允许你的坏脚本消耗所有的内存。
那么如何解决这个问题?
假设您正在创建一个携带如此多数据的变量。在循环中,您将重新分配值。
所以你将过多的数据重新分配给同一个变量,虽然它的值正在更新,但是当变量正在使用时,内存不会被释放。垃圾收集器没有清除那个内存。
正确的解决方案:为避免允许的内存大小耗尽错误,您可以将值设置为null。通过这样做,你告诉垃圾收集器保存在内存中的那个变量不是必需的&释放。垃圾收集将立即清除空间。