private $link;
private function __construct() {
- switch (DB_TYPE) {
- case "mysql":
- $this->adapter = new Db_Mysql();
- break;
- case "pgsql":
- $this->adapter = new Db_Pgsql();
- break;
- default:
- die("Unknown DB_TYPE: " . DB_TYPE);
+
+ $er = error_reporting(E_ALL);
+
+ if (defined('_ENABLE_PDO') && _ENABLE_PDO && 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);
+ }
}
- $this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
+ 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 : "");
+
+ if (!$this->link) {
+ die("Error connecting through adapter: " . $this->adapter->last_error());
+ }
+
+ error_reporting($er);
}
private function __clone() {
return("'$str'");
}
+ function reconnect() {
+ $this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, defined('DB_PORT') ? DB_PORT : "");
+ }
+
function connect($host, $user, $pass, $db, $port) {
//return $this->adapter->connect($host, $user, $pass, $db, $port);
return ;