我正在考虑创建一个全局变量 $PDO
以在类、函数和代码中与我的脚本一起使用。
那么这是否会导致任何安全漏洞?
我现在每次都使用单独的连接。我应该坚持这个还是使用全局 PDO 对象?
最佳答案
这实际上取决于您的应用程序,因为在某些情况下您可能想要管理多个连接。但是,在许多情况下,在处理单个请求的过程中只打开一个连接以供使用是有意义的。这有助于消除在整个代码中打开/关闭连接的开销。我猜想在大多数情况下,安全性不会是一个太大的问题,除非您计划将数据库连接移交给一组代码,这些代码不应具有与该特定连接关联的数据库权限(可能是您的库或服务)不控制)。
我还强烈建议您研究依赖注入(inject)的概念,因为在大多数情况下,最好将实例化的 DB 对象传递给需要它的代码片段,而不是将其视为全局对象并仅使用global
关键字来访问它。这有助于您避免需要在每个类/函数中复制代码来检查数据库是否有连接等。如果您有一个单独的类执行此操作,并且您可以将该对象传递给需要它的类,则可以保证该对象将执行它应该执行的操作。
关于php - 全局连接变量或每次都是新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976887/