在PHP中使用PDO打开和关闭多个数据库连接

在PHP中使用PDO打开和关闭多个数据库连接,php,pdo,Php,Pdo,我正在研究简单的数据库连接类。我正在使用PHP和PDO 由于我需要连接到多个数据库,所以我希望将所有数据库连接汇集到一个类变量中,然后根据脚本的需要访问每个数据库连接 下面是一些伪代码: class Database_Driver { private static $db_connect_pool; public static function openConnect($params_arr) { try {

我正在研究简单的数据库连接类。我正在使用PHP和PDO

由于我需要连接到多个数据库,所以我希望将所有数据库连接汇集到一个类变量中,然后根据脚本的需要访问每个数据库连接

下面是一些伪代码:

class Database_Driver
{
    private static $db_connect_pool;

    public static function openConnect($params_arr)
    {   
        try 
        {
            $db_driver_str = $params_arr['driver'];
            $db_host_str = $params_arr['host'];
            $db_name_str = $params_arr['db_name'];
            $db_username_str = $params_arr['db_username'];
            $db_password_str = $params_arr['db_password'];

            $connect_options_arr = array(PDO::ATTR_PERSISTENT => true);

            self::$db_connect_pool[''.$db_driver_str.'_'.$db_name_str.''] = new PDO("".$db_driver_str.":host=".$db_host_str.";db_name=".$db_name_str."", $db_username_str, $db_password_str, $connect_options_arr);                
        }        
        catch (Exception $e) 
        {
            print_r($e);
        }
    }

    public static getConnection($db_driver, $db_name)
    {
        return self::$db_connect_pool[''.$db_driver.''.$db_name.''];
    }
}

Database_Driver::openConnect($params_str);
$db_handle = Database_Driver::getConnection($db_driver, $db_name);
$st_handle = $db_handle->prepare('SQL Statement');
$st_handle->execute();
因此,在脚本结束时,我希望关闭所有打开的数据库连接。我该怎么做?我是否只是清空数组,即
self::$db\u connect\u pool=NULL或者是否有其他有效的方法来实现这一点


提前感谢。

PHP会在脚本结束时自动关闭所有打开的连接,因此您想做的事情应该已经完成了

但是,如果需要在脚本执行结束之前关闭连接,则需要循环连接池阵列并单独关闭连接。

如下:

要关闭连接,您需要通过确保 删除对它的所有剩余引用--您可以通过 将NULL赋值给保存对象的变量。如果你不这样做 这样,当您的 脚本结束

因此,除非您希望/需要在释放资源的过程中进行清理,否则您可以让连接自行关闭


持久连接不会在脚本结束时关闭,而是缓存以供将来使用。将此类连接设置为NULL将关闭它们。

谢谢您提供的信息。这是否也适用于持久连接?