2012-11-11 22 views
4

在類方法中使用mysql_query並將其設置爲局部變量時,在方法結束執行或腳本結束時是否釋放內存?值得加入mysql_free_result嗎?下面是例子。當局部變量不再存在時,mysql_query會釋放內存嗎?

class example{ 
    public function Query($query){ 
     $result = mysql_query($query); 
     while ($row = mysql_fetch_assoc($result)) 
     { 
      $this->rows[] =$row; 
     } 
    } 
} 
當方法完成或者是它需要調用 mysql_free_result在方法結束時

威爾存儲器被釋放?

回答

3

首先,mysql_ PHP函數不再被維護,因此您可能希望使用更OOP方法如mysqliPDO功能。

由於mysql_free_result()

將釋放其結果標識符結果相關聯的所有存儲器。

如果你正在提取很多結果,那麼是的,你可以(也應該)使用這個函數來釋放你的mysql來節省內存。

至於你的問題的其餘部分:

當方法完成或者是否有必要在方法結束時調用mysql_free_result

威爾內存被釋放?

不,你不使用mysql_free_result的內存不會在你的方法的目的,而是在腳本的執行結束被釋放的情況下。

我希望它有幫助。乾杯。

+0

感謝您的快速響應。這是一個ORM類,最終我需要遷移到mysqli或pdo,但它應該很容易在一個地方進行更改。 – John

+0

如果答案正確,請將其標記爲如此。否則Stackoverflow將永遠不會知道你的問題已經解決。考慮提出有幫助的答案,這樣可以讓其他具有類似問題的用戶更輕鬆地找到答案。 –