2012-11-27 66 views
0

Possible Duplicate:
php/symfony/doctrine memory leak?如何破壞symfony 1.4中的對象?

我需要知道,如果有破壞symfony的1.4的對象的方式,因爲我有一個cicle for上插入數據庫。

foreach ($array_data as $payroll_employee) 
{ 
    $discounts = new PayrollDiscounts(); 
    $discounts->setPayrollId($payroll_id); 
    $discounts->save(); 
    $discounts->free(TRUE); 
    unset($discounts); 
} 

,並顯示該錯誤:

Fatal error: Allowed memory size of 134217728 bytes exhausted

所以,我需要知道的方式來提供存儲。

+0

請注意,這實際上是一個Doctrine(或Propel也許?)問題,而不是Symfony,我已經添加了一個標籤。 –

+0

'$ array_data'中有多少項?順便說一句,你應該嘗試從這個答案的每一個更新:http://stackoverflow.com/a/4066680/569101 – j0k

+0

@ j0k謝謝你的答案將是我的解決方案。 – JERC

回答

1

使用unset()將特別釋放與該變量相關聯的內存,但我懷疑$discounts變量的設置是您遇到內存分配問題的原因,因爲每次循環都會覆蓋它。是$array_data本身太大?是否在$discounts對象上執行的方法之一導致問題?

嘗試在代碼中設置一些斷點以更好地找到遇到內存問題的位置。

-1

您可以使用unset()銷燬PHP中的對象。這就是你現在正在做的。

爲了增加可用內存 - 你必須

memory_limit

設置PHP配置值到一個更大的數字。

+0

增加memory_limit只是一個解決方案。 –

+0

夠公平的。但是在我有限的經驗中,這是在有ORM的情況下唯一可行的方法。 – madflow

+0

@madflow沒有.. – j0k