Files
postgrachelor-php/Database.php
2017-03-27 15:15:40 +02:00

62 lines
1.8 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: leanderschmedemann
* Date: 02/03/2017
* Time: 09:59
*/
class Database
{
private $db;
function __construct() {
$this->db = pg_connect("host=".DATABASE_URL." dbname=".DATABASE_NAME." user=".DATABASE_USER." password=".DATABASE_PASSWORD);
}
function query($sql, $params = null) {
$result = null;
if($params) {
$result = pg_query_params($this->db, $sql, $params);
} else {
$result = pg_query($this->db, $sql);
}
if(!$result) {
$error = 10101;
}
if(!$error) {
$data = pg_fetch_all($result);
} else {
$data = null;
}
$query_response=array('data' => $data, 'error' => $error);
return $query_response;
}
function create_response($data, $error, $values = null) {
$status_message = Database::create_status_code($error, $values);
$meta = array('status'=>$error, 'message'=>$status_message);
$response_element_json = json_encode(array('meta'=>$meta, 'data'=>$data), JSON_PRETTY_PRINT);
return $response_element_json;
}
function create_status_code($error, $values) {
switch ($error) {
case 0:
return 'Success.';
case 10101:
return 'SQL statement did not give a result.';
case 11101:
return 'User name does not match rules. User name must be 6 to 20 characters and consist of English letters and numbers only.';
case 11102:
return 'User name already exists. Please pick a different name.';
case 12101:
return 'We only have '.$values[0].' questions. Please select new game length.';
default:
return 'An unknown error occurred.';
}
}
}
?>