diff options
author | Simon Rettberg | 2013-10-28 18:29:29 +0100 |
---|---|---|
committer | Simon Rettberg | 2013-10-28 18:29:29 +0100 |
commit | 160880836462e277c77427e71a2ba97a2ad17184 (patch) | |
tree | 656a2199846bb762c91fdfdebe30c54fd36b21c4 /inc/db.inc.php | |
parent | Show different content on main page depending on logged in/guest status (diff) | |
download | slx-admin-160880836462e277c77427e71a2ba97a2ad17184.tar.gz slx-admin-160880836462e277c77427e71a2ba97a2ad17184.tar.xz slx-admin-160880836462e277c77427e71a2ba97a2ad17184.zip |
DB-Support, add user functionality
Diffstat (limited to 'inc/db.inc.php')
-rw-r--r-- | inc/db.inc.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/inc/db.inc.php b/inc/db.inc.php new file mode 100644 index 00000000..09341a07 --- /dev/null +++ b/inc/db.inc.php @@ -0,0 +1,54 @@ +<?php + +class Database +{ + private static $dbh = false; + private static $statements = array(); + + public static function init() + { + if (self::$dbh !== false) return; + try { + self::$dbh = new PDO(CONFIG_SQL_DSN, CONFIG_SQL_USER, CONFIG_SQL_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); + } catch (PDOException $e) { + Util::traceError('Connecting to the local database failed: ' . $e->getMessage()); + } + } + + public static function queryFirst($query, $args = array()) + { + $res = self::simpleQuery($query, $args); + if ($res === false) return false; + return $res->fetch(PDO::FETCH_ASSOC); + } + + public static function exec($query, $args = array()) + { + $res = self::simpleQuery($query, $args); + if ($res === false) return false; + return $res->rowCount(); + } + + public static function simpleQuery($query, $args = array()) + { + self::init(); + //if (empty($args)) Util::traceError('Query with zero arguments!'); + if (!isset(self::$statements[$query])) { + self::$statements[$query] = self::$dbh->prepare($query); + } else { + self::$statements[$query]->closeCursor(); + } + if (self::$statements[$query]->execute($args) === false) { + Util::traceError("Database Error: \n" . implode("\n", self::$statements[$query]->errorInfo())); + } + return self::$statements[$query]; + } + + public static function prepare($query) + { + self:init(); + return self::$dbh->prepare($query); + } + +} + |