Advertisement
benshepherd

db.class.php

Dec 6th, 2013
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.03 KB | None | 0 0
  1. <?php
  2.    
  3.     class DB {
  4.    
  5.             private static $instance;
  6.             private static $con;
  7.             private static $customError;       
  8.    
  9.             public static function init($host, $user, $pass, $db) {
  10.    
  11.                 if(!isset(self::$instance)) {
  12.    
  13.                     try {
  14.                         self::$instance = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pass);
  15.                         self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  16.                         self::$con = true;
  17.                     }
  18.                     catch (PDOException $e) {
  19.                        
  20.                         self::$customError = $e->getMessage();
  21.                         self::$con = false;
  22.                     }
  23.                 }
  24.             }
  25.            
  26.             public static function isConnected() {
  27.                
  28.                 return self::$con; 
  29.             }
  30.    
  31.             public static function query($query, $params = array()) {
  32.                
  33.                 try {
  34.                     $params = !is_array($params) ? array($params) : $params;
  35.                     $data = array();
  36.                     $is_select = strtoupper(substr($query,0,6)) == "SELECT" ? true : false;
  37.                    
  38.                     if(count($params) > 0) {
  39.                        
  40.                         $stmt = self::$instance->prepare($query);
  41.                        
  42.                         if(!$stmt)
  43.                         {
  44.                             return false;  
  45.                         }
  46.                        
  47.                         $stmt->execute($params);           
  48.                        
  49.                         if($is_select)
  50.                             $data = $stmt->fetchAll(PDO::FETCH_ASSOC);
  51.                         else {
  52.                             $data = true;  
  53.                         }
  54.                        
  55.                         $stmt->closeCursor();
  56.                     }
  57.                     else {
  58.        
  59.                         $res = self::$instance->query($query);
  60.        
  61.                         if(!$res)
  62.                         {                  
  63.                             return false;  
  64.                         }
  65.                         else if($is_select)
  66.                         {
  67.                             foreach($res as $row)
  68.                                 $data[] = $row;
  69.                         }
  70.                         else
  71.                         {
  72.                             $data = true;  
  73.                         }
  74.                     }
  75.                    
  76.                     self::$customError = "";
  77.                    
  78.                     return $data;
  79.                 }
  80.                 catch(Exception $e) {
  81.                    
  82.                     self::setError($e->getMessage());
  83.                     return false;  
  84.                 }
  85.             }
  86.            
  87.             public static function getError() {
  88.                
  89.                 if(strlen(self::$customError) > 0)
  90.                 {
  91.                     return self::$customError;
  92.                 }
  93.                 else
  94.                 {
  95.                     $err = self::$instance->errorInfo();   
  96.                     return $err[count($err)-1];
  97.                 }
  98.             }
  99.            
  100.             public static function setError($e) {
  101.                
  102.                 self::$customError = $e;   
  103.             }
  104.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement