diff options
Diffstat (limited to 'inc/database.php')
| -rw-r--r-- | inc/database.php | 49 |
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 |
