多个数据库连接 PHP

1 php mysql oop pdo

我很难找到解决这个问题的好方法。我的网站上有多个课程,它们都处理不同的事情。我有一个评论类、一个配置文件类、一个登录类等等。到目前为止,我对我的代码设计很满意,因为基本上所有的逻辑都在我的 html 模板之外。所以我的模板中只有非常少的逻辑。唯一的问题是,我有一个用于数据库连接的类,我扩展了数据库类中的每个类并使用父构造函数连接到数据库。唯一的问题是每个页面上至少有 2 个独立的类,现在网站变得越来越复杂,我每页有 4 或 5 个类,这明显影响了加载时间,因为我必须重新连接到每个数据库时间。

我的问题是在课堂上使用数据库连接的最佳方式是什么。我在想也许数据库查询必须在 html 中处理,或者我可以创建一个完整的函数文件,该文件包含在每个加载了数据库连接的页面上。但我想知道更有经验的程序员是如何做到这一点的,这样我才能以正确的方式修复它。

感谢您的建议。

You*_*nse 6

尽管您可以使用单例来确保只使用一个连接,但似乎在 Stack Overflow 上对这种诚实的模式宣战了一场圣战。

然而,从 DB 类扩展应用程序类是一个坏主意。这些类没有任何共同点。数据库类只是一项服务 - 因此,将其用作服务。您的某些课程肯定也必须发送电子邮件 - 您不也从电子邮件课程扩展您的课程吗?

您必须将 DB 类实例化一次,然后将此对象传递给其构造函数中的其他类。最简单的方法是只使用global $db;,或者您可以麻烦在构造函数参数中传递它们。或者使用广泛宣传的依赖注入方法。

无论如何,您应该在整个脚本执行过程中使用单个连接(具有相同的凭据)。多次打开和关闭连接并不比同时拥有多个连接好。