function pdoOpen()
{
require_once $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . "classes" . DIRECTORY_SEPARATOR . "settings.class.php";
$settings = new settings();
switch ($settings::db_driver) {
case 'mysql':
$dsn = "mysql:host=" . $settings::db_host . ";dbname=" . $settings::db_database;
break;
case 'sqlsrv':
$dsn = "sqlsrv:server=" . $settings::db_host . ";database=" . $settings::db_database;
break;
case 'pgsql':
$dsn = "pgsql:host=" . $settings::db_host . ";dbname=" . $settings::db_database;
break;
case 'sqlite':
// In v2.5.0 the path to the SQLite database is no longer hard coded.
// So if there is a problem getting the path the the SQLite database
// from settings.class.php we must use the old style hard coded path.
$dsn = "sqlite:" . $settings::db_host;
if ($dsn == "sqlite:") {
// Use the legacy hard coded path for older systems being updated before v2.5.0.
$dsn = "sqlite:" . $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . "data" . DIRECTORY_SEPARATOR . "portal.sqlite";
}
break;
}
$dbh = new PDO($dsn, $settings::db_username, $settings::db_password);
if ($settings::db_driver == 'sqlite') {
$dbh = new PDO($dsn);
}
if ($settings::pdo_debug == TRUE) {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return $dbh;
}