private $pdo;
function connect($host, $user, $pass, $db, $port) {
- $connstr = DB_TYPE . ":host=$host;dbname=$db;charset=utf8";
+ $connstr = DB_TYPE . ":host=$host;dbname=$db";
+
+ if (DB_TYPE == "mysql") $connstr .= ";charset=utf8";
try {
$this->pdo = new PDO($connstr, $user, $pass);
+ $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ $this->init();
} catch (PDOException $e) {
die($e->getMessage());
}
function query($query, $die_on_error = true) {
try {
- return $this->pdo->query($query);
+ return new Db_Stmt($this->pdo->query($query));
} catch (PDOException $e) {
user_error($e->getMessage(), $die_on_error ? E_USER_ERROR : E_USER_WARNING);
}
}
function fetch_result($result, $row, $param) {
- $line = $this->fetch_assoc($result);
-
- if ($line)
- return $line[$param];
- else
- return null;
-
+ return $result->fetch_result($row, $param);
}
function close() {
}
function last_error() {
- return join(" ", $pdo->errorInfo());
+ return join(" ", $this->pdo->errorInfo());
+ }
+
+ function init() {
+ switch (DB_TYPE) {
+ case "pgsql":
+ $this->query("set client_encoding = 'UTF-8'");
+ $this->query("set datestyle = 'ISO, european'");
+ $this->query("set TIME ZONE 0");
+ case "mysql":
+ $this->query("SET time_zone = '+0:0'");
+ return;
+ }
+
+ return true;
}
+
}
?>