2015-09-04 164 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本身就是一个很好的包装,只有极少的东西需要改进。在重新开始之前,必须考虑三次。