7979dc627f4df7638d9f007f3c7c4fc993ae372d
5 * @author Jan Altensen (Stricted)
6 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
7 * @copyright 2013-2015 Jan Altensen (Stricted)
23 * Connects to SQL Server
25 * @param string $driver
27 * @param string $username
28 * @param string $password
29 * @param string $database
30 * @param integer $port
31 * @param array $options
34 public function __construct($driver, $host, $username, $password, $database, $port = 0, $options = array()) {
35 if (!extension_loaded("pdo")) {
36 // check if extension loaded
37 die("Missing <a href=\"http://www.php.net/manual/en/book.pdo.php\">PDO</a> PHP extension.");
40 $driver = strtolower($driver);
42 if ($driver == "mysql") {
43 if (!extension_loaded("pdo_mysql")) {
44 // check if extension loaded
45 die("Missing <a href=\"http://php.net/manual/de/ref.pdo-mysql.php\">pdo_mysql</a> PHP extension.");
52 $this->conn
= new \
PDO("mysql:host=".$host.";port=".$port.";dbname=".$database, $username, $password, $options);
54 else if ($driver == "pgsql") {
55 if (!extension_loaded("pdo_pgsql")) {
56 // check if extension loaded
57 die("Missing <a href=\"http://php.net/manual/de/ref.pdo-pgsql.php\">pdo_pgsql</a> PHP extension.");
64 $this->conn
= new \
PDO("pgsql:host=".$host.";port=".$port.";dbname=".$database, $username, $password, $options);
66 else if ($driver == "sqlite") {
67 if (!extension_loaded("pdo_sqlite")) {
68 // check if extension loaded
69 die("Missing <a href=\"http://php.net/manual/de/ref.pdo-sqlite.php\">pdo_sqlite</a> PHP extension.");
72 if (!file_exists($database)) {
76 if (file_exists($database) && is_readable($database) && is_writable($database)) {
77 $this->conn
= new \
PDO("sqlite:".$database, $username, $password, $options);
80 $this->error
= "cant crate/connect the/to sqlite database";
85 $this->error
= "not supported database type found";
92 catch (\PDOException
$e) {
93 $this->error
= $e->getMessage();
99 * close the database connection
101 public function close () {
106 * Sends a database query to SQL server.
112 public function query ($res, $bind = array()) {
115 $query = $this->conn
->prepare($res);
117 if (is_array($bind) && !empty($bind)) {
118 $query->execute($bind);
126 catch (\PDOException
$e) {
127 $this->error
= $e->getMessage();
132 * Gets a row from SQL database query result.
137 public function fetch_array ($res) {
139 return $res->fetch(\PDO
::FETCH_ASSOC
);
141 catch (\PDOException
$e) {
142 $this->error
= $e->getMessage();
147 * return the last insert id
151 public function last_id () {
152 return $this->conn
->lastInsertId();
156 * Returns SQL last error.
160 public function error () {
167 * @param string $name
168 * @param array $arguments
171 public function __call($name, $arguments) {
172 if (!method_exists($this->conn
, $name)) {
173 throw new \
Exception("unknown method '".$name."'");
176 return call_user_func_array(array($this->conn
, $name), $arguments);