执行后重用 PDO 连接?
Reusing a PDO connection after execute?
我想知道多次重复使用 PDO 数据库连接是否正确?
例如,我在我的控制器中设置它,然后将它作为参数传递到 class 的构造函数中,调用相同的连接是否正确(通过使用像 [=18= 这样的函数) ]) thoughout 我在 class 中的所有函数,甚至将它作为参数传递到另一个 class 构造中以继续使用相同的连接 ?
或者我应该在某个时候重新打开连接?
我可以通过简单地传递它来让它工作,但是我不太确定它在上线时是否会表现良好。
是的,这没问题,比多次连接数据库要好。
documentation 甚至建议在对 php 脚本/应用程序的调用之间使用打开的连接:
Many web applications will benefit from making persistent connections to database servers. Persistent connections are not closed at the end of the script, but are cached and re-used when another script requests a connection using the same credentials. The persistent connection cache allows you to avoid the overhead of establishing a new connection every time a script needs to talk to a database, resulting in a faster web application.
是,你应该重用连接。
Or should I reopen a connection at some point ?
打开新连接的唯一原因是连接到另一个数据库。否则,在整个单个脚本中只应使用一个连接。
要实现这一点,重要的是尝试避免在整个应用程序中使用静态单例,而是了解 dependency injection 来设计代码以将相同的 PDO 实例共享给每个函数或 class需要它。
however I am not quite sure if this would be performing well when going live.
和一样,如果你经常重新打开一个连接,会慢很多。
有很多依赖注入器,这几乎可以肯定是见仁见智的问题,但我喜欢 Auryn。了解它应该可以帮助您设计更容易共享单个 PDO 实例的代码。
我想知道多次重复使用 PDO 数据库连接是否正确?
例如,我在我的控制器中设置它,然后将它作为参数传递到 class 的构造函数中,调用相同的连接是否正确(通过使用像 [=18= 这样的函数) ]) thoughout 我在 class 中的所有函数,甚至将它作为参数传递到另一个 class 构造中以继续使用相同的连接 ?
或者我应该在某个时候重新打开连接?
我可以通过简单地传递它来让它工作,但是我不太确定它在上线时是否会表现良好。
是的,这没问题,比多次连接数据库要好。 documentation 甚至建议在对 php 脚本/应用程序的调用之间使用打开的连接:
Many web applications will benefit from making persistent connections to database servers. Persistent connections are not closed at the end of the script, but are cached and re-used when another script requests a connection using the same credentials. The persistent connection cache allows you to avoid the overhead of establishing a new connection every time a script needs to talk to a database, resulting in a faster web application.
是,你应该重用连接。
Or should I reopen a connection at some point ?
打开新连接的唯一原因是连接到另一个数据库。否则,在整个单个脚本中只应使用一个连接。
要实现这一点,重要的是尝试避免在整个应用程序中使用静态单例,而是了解 dependency injection 来设计代码以将相同的 PDO 实例共享给每个函数或 class需要它。
however I am not quite sure if this would be performing well when going live.
和
有很多依赖注入器,这几乎可以肯定是见仁见智的问题,但我喜欢 Auryn。了解它应该可以帮助您设计更容易共享单个 PDO 实例的代码。