2015-09-04 101 views
-1

在對包裝/擴展PDO類和PDOStatement類的優缺點進行了長時間的研究之後,我得出結論:我想包裝兩個類而不是擴展它們。PDO包裝類包裝類

現在我面臨着以下問題:我也得到了包裝器的fetch-和使用fetchall方法,它導致內存過載方法:

public function fetch_row($style = null, $orientation_cursor = null, $offset_cursor = null) 
{ 
    return $this->driver->fetch($style, $orientation_cursor, $offset_cursor); 
} 

我不知道PHP可能保留額外的內存返回的數組返回。

有沒有辦法告訴PHP不使用內存?在我想保持包裝類的情況下,你有另一種可能的架構來解決我的問題嗎?

感謝您已經在您的幫助,

弗雷迪

+0

很高興聽到你爲什麼投下線程-1 ... – Freddy

+0

在這個問題中確實沒有足夠的可靠信息。沒有實際的錯誤信息,沒有任何用於任何人的代碼來嘗試複製您的情況。你要從中得到的是有人猜測或無處不在,哦,我有類似的東西,並改變了這一點,這基本上只是另一種猜測。 – RiggsFolly

+0

我想擺脫這個問題的是,如果我再次傳遞返回的變量,是否有額外的內存使用。 – Freddy

回答

0

這是一個典型offtopic問題,因爲它的要求來解釋[毫無]假設,但未能提供一些reproduceable情況下作爲證據。

所以,僅僅從我的經驗,我可以告訴大家,

  1. 沒有,從來沒有PHP保留任何存儲器中,以防萬一。
  2. 很有可能您的問題是由返回太多數據的buffered query造成的,這與您的包裝無關。
  3. PDO本身就是一個很好的包裝,只有極少的東西需要改進。在重新開始之前,必須考慮三次。