benshepherd icon

db.class.php

benshepherd | PRO | 12/06/13 09:08:33 PM UTC | 0 ⭐ | 316 👁️ | Never ⏰ | []
PHP |

2.03 KB

|

None

|

0 👍

/

0 👎

<?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