<?php
class DB {
private static $instance;
private static $con;
private static $customError;
public static function init($host, $user, $pass, $db) {
if(!isset(self::$instance)) {
try {
self::$instance = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pass);
self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$con = true;
}
catch (PDOException $e) {
self::$customError = $e->getMessage();
self::$con = false;
}
}
}
public static function isConnected() {
return self::$con;
}
public static function query($query, $params = array()) {
try {
$params = !is_array($params) ? array($params) : $params;
$data = array();
$is_select = strtoupper(substr($query,0,6)) == "SELECT" ? true : false;
if(count($params) > 0) {
$stmt = self::$instance->prepare($query);
if(!$stmt)
{
return false;
}
$stmt->execute($params);
if($is_select)
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
else {
$data = true;
}
$stmt->closeCursor();
}
else {
$res = self::$instance->query($query);
if(!$res)
{
return false;
}
else if($is_select)
{
foreach($res as $row)
$data[] = $row;
}
else
{
$data = true;
}
}
self::$customError = "";
return $data;
}
catch(Exception $e) {
self::setError($e->getMessage());
return false;
}
}
public static function getError() {
if(strlen(self::$customError) > 0)
{
return self::$customError;
}
else
{
$err = self::$instance->errorInfo();
return $err[count($err)-1];
}
}
public static function setError($e) {
self::$customError = $e;
}
}
Comments