2016-02-25 47 views
2

我想知道重复使用PDO db连接多次是正确的吗?执行后重新使用PDO连接?

例如,我在我的控制器中设置它,然后将它作为类的构造函数中的参数传递,调用相同的连接(通过使用类似于get_Database的函数),尽管类中的所有函数都是正确的甚至将它作为另一个类构造中的参数传递以继续使用相同的连接?

或者我应该重新打开某个连接?

我能够通过简单传递来实现它,但是我不太确定这是否会在上线时表现良好。

+2

它不仅推荐它。建立联系是一个相对缓慢的过程。始终在整个单一脚本中重复使用连接 – RiggsFolly

回答

2

是的,您应该重新使用连接。

或者我应该重新打开某个连接?

打开新连接的唯一原因是连接到另一个数据库。否则,在整个单一脚本中只能使用一个连接。

为了达到这个目的,尝试和避免在整个应用程序中使用静态单例很重要,而要了解dependency injection来设计代码,以便将每个功能或类别共享相同的PDO实例。

但是我不太确定这是否会在上线时表现良好。

作为commented,如果你重新打开连接的时候,这将是一个很多


有许多依赖注入的在那里,那么几乎可以肯定是见仁见智,但我喜欢Auryn。了解它应该可以帮助您设计能够更轻松地共享单个PDO实例的代码。

1

是的,这是好的,它比连接数据库好多次。 的documentation甚至建议使用到PHP脚本/应用程序调用之间的打开的连接:

许多Web应用程序将作出对数据库服务器的持久连接中获益。持久连接在脚本结束时未关闭,但在另一个脚本使用相同凭据请求连接时缓存并重新使用。持久连接缓存可以避免每次脚本需要与数据库通信时建立新连接的开销,从而导致更快的Web应用程序。