我正在研究簡單的數據庫連接類。我正在使用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
非常感謝。現在更清楚了。 –