Я работаю над простым классом подключения к базе данных. Я использую 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;
или есть какой-то другой способ сделать это эффективно.
Заранее спасибо.