Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从其他文件访问PDO连接?_Php_Mysql_Pdo - Fatal编程技术网

Php 如何从其他文件访问PDO连接?

Php 如何从其他文件访问PDO连接?,php,mysql,pdo,Php,Mysql,Pdo,如何从单独的文件访问类方法中的PDO连接(到mysql),而不必每次需要连接时都重写新的PDO()?而不使用单身模式——这显然是不受欢迎的 编辑: 我过去所做的是创建一个数据库类,在该类中,通过mysql\u connect在一个u构造方法中为连接分配了$connection属性。在同一个文件中,我将实例化该类,以便它可以运行。然后,每当我需要该连接时,我只需要该数据库文件,并在需要$connection的方法中添加一个全局$connection。我只是想不出一个可靠的方法来用新的PDO($ds

如何从单独的文件访问类方法中的PDO连接(到mysql),而不必每次需要连接时都重写新的PDO()?而不使用单身模式——这显然是不受欢迎的

编辑:
我过去所做的是创建一个数据库类,在该类中,通过mysql\u connect在一个u构造方法中为连接分配了$connection属性。在同一个文件中,我将实例化该类,以便它可以运行。然后,每当我需要该连接时,我只需要该数据库文件,并在需要$connection的方法中添加一个全局$connection。我只是想不出一个可靠的方法来用新的PDO($dsn,$user,$password)实现这一点

最好将其存储在一个变量中,该变量可以全局访问

传统上,您会将变量存储在名称空间中,尽管这是一个简单的名称空间

不要使用
单例
,您应该做的是将对象放置到一个like中


简单地说,您只需要创建一个包含两个静态成员的类<代码>设置($key,$value)和
获取($key)
。当您构造PDO对象时,只需调用
set('db',$pdoConnection)
来存储它,当您需要访问数据库时,调用
get('db')
您最好将其存储在一个全局可访问的变量中

传统上,您会将变量存储在名称空间中,尽管这是一个简单的名称空间

不要使用
单例
,您应该做的是将对象放置到一个like中


简单地说,您只需要创建一个包含两个静态成员的类<代码>设置($key,$value)和
获取($key)
。构建PDO对象时,只需调用
set('db',$pdoConnection)
来存储它,当需要访问数据库时,调用
get('db')

是什么使得
Zend_注册表
$GLOBALS['Registry'][db]=$pdoConnection不同?@hakre是一个对象,因此它封装了注册表的状态。理论上,您可以在
get
set
调用中添加额外的功能(如日志记录)。使用vanilla$GLOBALS数组无法做到这一点。当然,请使用
ArrayAccess
将某些内容放入
$GLOBALS['registry']
,例如,一次写入,多次读取哈希。@hakre您应该将此作为备选答案发布
ArrayAccess
似乎是一个简单注册表对象的良好基础。是什么使
Zend_registry
不同于
$GLOBALS['registry'][db]=$pdoConnection?@hakre是一个对象,因此它封装了注册表的状态。理论上,您可以在
get
set
调用中添加额外的功能(如日志记录)。使用vanilla$GLOBALS数组无法做到这一点。当然,请使用
ArrayAccess
将某些内容放入
$GLOBALS['registry']
,例如,一次写入,多次读取哈希。@hakre您应该将此作为备选答案发布
ArrayAccess
似乎是简单注册表对象的良好基础。相关:相关: