summaryrefslogtreecommitdiff
path: root/inc/database.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/database.php')
-rw-r--r--inc/database.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/inc/database.php b/inc/database.php
new file mode 100644
index 00000000..21fabe71
--- /dev/null
+++ b/inc/database.php
@@ -0,0 +1,49 @@
+<?php
+
+ function sql_open() {
+ global $pdo, $config;
+ if($pdo) return true;
+
+ $dsn = $config['db']['type'] . ':host=' . $config['db']['server'] . ';dbname=' . $config['db']['database'];
+ if(!empty($config['db']['dsn']))
+ $dsn .= ';' . $config['db']['dsn'];
+ try {
+ return $pdo = new PDO($dsn, $config['db']['user'], $config['db']['password']);
+ } catch(PDOException $e) {
+ $message = $e->getMessage();
+
+ // Remove any sensitive information
+ $message = str_replace($config['db']['user'], '<em>hidden</em>', $message);
+ $message = str_replace($config['db']['password'], '<em>hidden</em>', $message);
+
+ // Print error
+ error('Database error: ' . $message);
+ }
+ }
+
+ function sql_close() {
+ global $pdo;
+ $pdo = NULL;
+ }
+
+ function prepare($query) {
+ global $pdo;
+ return $pdo->prepare($query);
+ }
+
+ function query($query) {
+ global $pdo;
+ return $pdo->query($query);
+ }
+
+ function db_error($PDOStatement=null) {
+ global $pdo;
+ if(isset($PDOStatement)) {
+ $err = $PDOStatement->errorInfo();
+ return $err[2];
+ } else {
+ $err = $pdo->errorInfo();
+ return $err[2];
+ }
+ }
+?> \ No newline at end of file