执行后重用PDO连接?

时间:2016-02-25 22:39:40

标签: php oop object pdo database-connection

我想知道多次重复使用PDO数据库连接是否正确?

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

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

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

2 个答案:

答案 0 :(得分:2)

,您应该重复使用该连接。

  

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

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

要实现这一点,重要的是尽量避免在整个应用程序中使用静态单例,而是要了解dependency injection来设计代码以将相同的PDO实例共享给需要它的每个函数或类。

  

然而,我不太确定它在上线时是否表现良好。

作为commented,如果您经常重新打开连接,那么会慢很多

那里有很多依赖注入器,这几乎肯定是一个意见问题,但我喜欢Auryn。了解它应该可以帮助您设计更容易共享单个PDO实例的代码。

答案 1 :(得分:1)

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

  

许多Web应用程序将从与数据库服务器的持久连接中受益。持久连接不会在脚本末尾关闭,而是在另一个脚本使用相同凭据请求连接时进行高速缓存和重新使用。持久连接缓存允许您避免每次脚本需要与数据库通信时建立新连接的开销,从而使Web应用程序更快。