我正在研究简单的数据库连接类。我正在使用PHP和PDO。在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_connect_pool = NULL;
或者是否有其他方法可以有效地执行此操作。
在此先感谢。
感谢您的信息。这是否也适用于持续连接? –
@Chuck Ugwuh:我已经更新了我的回答 – Cez
非常感谢。现在更清楚了。 –