全局连接变量或每次都有新的连接变量


Global connection variable or new one every time

我正在考虑创建一个全局变量$PDO,以便在类、函数和代码中与脚本一起使用。那么,在这种情况下会发生安全漏洞吗
我现在每次都使用单独的连接。我应该坚持这个还是使用全局PDO对象?

这实际上取决于您的应用程序,因为在某些情况下可能需要管理多个连接。但是,在许多情况下,在处理单个请求的过程中只打开一个连接以供使用是有意义的。有助于消除在整个代码中打开/关闭连接的开销。我想,在大多数情况下,安全性不会是一个很大的问题,除非你计划将数据库连接交给一组不应该拥有与该特定连接相关联的数据库权限的代码(可能是你不控制的库或服务)。

我还强烈建议您研究依赖注入的概念,因为在大多数情况下,最好将实例化的DB对象传递给需要它的代码段,而不是将其视为全局对象,只使用global关键字来访问它。这有助于您避免需要在每个类/函数中复制代码来检查DB是否有连接等。如果你有一个单独的类来做这件事,并且你可以把这个对象传递给需要它的类,他们就可以保证这个对象会做它应该做的事情