X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=classes%2Fdb.php;fp=classes%2Fdb.php;h=86d2ab897d0afa608a5a7f945dfc32a0dfa5a75f;hb=e441b5837b84f8313e506a3d1b087f269f4a9fb3;hp=c9d9ad5ea9326bded4afb2e3cda7e040ddc1ed57;hpb=d9c85e0f112034ca3e3f4d34213f6dcccf9d54e1;p=tt-rss.git diff --git a/classes/db.php b/classes/db.php index c9d9ad5e..86d2ab89 100644 --- a/classes/db.php +++ b/classes/db.php @@ -5,22 +5,37 @@ class Db implements IDb { private $link; private function __construct() { - switch (DB_TYPE) { - case "mysql": - if (function_exists("mysqli_connect")) { - $this->adapter = new Db_Mysqli(); - } else { - $this->adapter = new Db_Mysql(); + + $er = error_reporting(E_ALL); + + if (class_exists("PDO")) { + $this->adapter = new Db_PDO(); + } else { + switch (DB_TYPE) { + case "mysql": + if (function_exists("mysqli_connect")) { + $this->adapter = new Db_Mysqli(); + } else { + $this->adapter = new Db_Mysql(); + } + break; + case "pgsql": + $this->adapter = new Db_Pgsql(); + break; + default: + die("Unknown DB_TYPE: " . DB_TYPE); } - break; - case "pgsql": - $this->adapter = new Db_Pgsql(); - break; - default: - die("Unknown DB_TYPE: " . DB_TYPE); } + if (!$this->adapter) die("Error initializing database adapter for " . DB_TYPE); + $this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, defined('DB_PORT') ? DB_PORT : false); + + if (!$this->link) { + die("Error connecting through adapter: " . $this->adapter->last_error()); + } + + error_reporting($er); } private function __clone() {