在PHP中使用PDO打开和关闭多个数据库连接
我正在研究简单的数据库连接类。我正在使用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 {
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将关闭它们。谢谢您提供的信息。这是否也适用于持久连接?