PDOStatement类的包装类

时间:2015-09-04 10:55:54

标签: php pdo wrapper

经过长期研究包装/扩展PDO类和PDOStatement类的优缺点后,我得出的结论是,我想要包装两个类而不是扩展它们。

现在我面临以下问题:我还得到了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不使用内存?在我想保留包装类的情况下,您是否有另一种可能的架构来解决我的问题?

提前感谢您的帮助,

弗雷迪

1 个答案:

答案 0 :(得分:0)

这是一个示例性的offtopic问题,因为它要求解释[无根据]的假设,但未能提供一些可重现的案例作为证据。

所以,根据我的经验,我可以告诉你

  1. 不,PHP从不提前预留任何内存,以防万一。
  2. 很可能你的问题是由buffered query引起的,这些数据返回了太多的数据,这与你的包装器无关。
  3. PDO本身就是一个很好的包装器,只有很少的东西需要改进。在重新发明轮子之前,必须要三思而后行。