5 * @author Jan Altensen (Stricted)
6 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
7 * @copyright 2013-2016 Jan Altensen (Stricted)
17 * Connects to SQL Server
19 * @param string $driver
21 * @param string $username
22 * @param string $password
23 * @param string $database
24 * @param integer $port
25 * @param array $options
28 public function __construct($driver, $host, $username, $password, $database, $port = 0, $options = array()) {
29 if (!extension_loaded("pdo")) {
30 // check if extension loaded
31 throw new SystemException("Missing <a href=\"http://www.php.net/manual/en/book.pdo.php\">PDO</a> PHP extension.");
34 $driver = strtolower($driver);
35 if ($driver == "mysql") {
36 if (!extension_loaded("pdo_mysql")) {
37 // check if extension loaded
38 throw new SystemException("Missing <a href=\"http://php.net/manual/de/ref.pdo-mysql.php\">pdo_mysql</a> PHP extension.");
45 $this->conn
= new \
PDO("mysql:host=".$host.";port=".$port.";dbname=".$database, $username, $password, $options);
47 else if ($driver == "pgsql") {
48 if (!extension_loaded("pdo_pgsql")) {
49 // check if extension loaded
50 throw new SystemException("Missing <a href=\"http://php.net/manual/de/ref.pdo-pgsql.php\">pdo_pgsql</a> PHP extension.");
57 $this->conn
= new \
PDO("pgsql:host=".$host.";port=".$port.";dbname=".$database, $username, $password, $options);
60 else if ($driver == "sqlite") {
61 if (!extension_loaded("pdo_sqlite")) {
62 // check if extension loaded
63 throw new SystemException("Missing <a href=\"http://php.net/manual/de/ref.pdo-sqlite.php\">pdo_sqlite</a> PHP extension.");
66 if (!file_exists($database)) {
70 if (file_exists($database) && is_readable($database) && is_writable($database)) {
71 $this->conn = new \PDO("sqlite:".$database, $username, $password, $options);
74 throw new SystemException("cant crate/connect the/to sqlite database");
79 throw new SystemException("no supported database type found");
86 * close the database connection
88 public function close () {
93 * Sends a database query to SQL server.
99 public function query ($res, $bind = array()) {
101 $query = $this->conn
->prepare($res);
103 if (is_array($bind) && !empty($bind)) {
104 $query->execute($bind);
115 * Gets a row from SQL database query result.
120 public function fetch_array ($res) {
121 return $res->fetch(\PDO
::FETCH_ASSOC
);
125 * return the last insert id
129 public function last_id () {
130 return $this->conn
->lastInsertId();
136 * @param string $name
137 * @param array $arguments
140 public function __call($name, $arguments) {
141 if (!method_exists($this->conn
, $name)) {
142 throw new \
Exception("unknown method '".$name."'");
145 return call_user_func_array(array($this->conn
, $name), $arguments);