summaryrefslogtreecommitdiffstats
path: root/inc/db.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2013-10-28 18:29:29 +0100
committerSimon Rettberg2013-10-28 18:29:29 +0100
commit160880836462e277c77427e71a2ba97a2ad17184 (patch)
tree656a2199846bb762c91fdfdebe30c54fd36b21c4 /inc/db.inc.php
parentShow different content on main page depending on logged in/guest status (diff)
downloadslx-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.php54
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);
+ }
+
+}
+