Advertisement
Guest User

Untitled

a guest
Mar 28th, 2015
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.64 KB | None | 0 0
  1. class Database {
  2.    
  3.     private $connection;
  4.     private $executedQuerys = [];
  5.        
  6.     public function __construct(\mysqli $connection) {
  7.         $this->connection = $connection;
  8.     }
  9.    
  10.     public function query($query, $params = [], $callback = null) {
  11.         $query = $this->getConvertedQueryString($query, $params);
  12.        
  13.         if($callback == null || $callback() == true) {
  14.             $return = $this->connection->query($query) or die($this->connection->error);
  15.         } else {
  16.             return null;
  17.         }
  18.        
  19.         $this->executedQuerys[] = [
  20.             'query' => $query,
  21.             'data' => $return
  22.         ];            
  23.                
  24.         return $return;
  25.     }
  26.    
  27.     public function multiQuery($querys = []) {
  28.         $result = [];
  29.         foreach($querys as $query) {
  30.             $qry = $query['query'];
  31.             $params = isset($query['params']) ? $query['params'] : [];
  32.             $callback = isset($query['callback']) ? $query['callback'] : null;
  33.            
  34.             $result[] = $this->query($qry, $params, $callback);
  35.         }
  36.        
  37.         return $result;
  38.     }
  39.    
  40.     private function getConvertedQueryString($query, $params = []) {
  41.         $toFind = [];
  42.         $toReplace = [];
  43.        
  44.         foreach($params as $key => $value) {
  45.             $toFind[] = ':'.$key;
  46.             $toReplace[] = "'".$this->connection->real_escape_string($value)."'";
  47.         }
  48.         $query = str_replace($toFind, $toReplace, $query);
  49.        
  50.         return $query;
  51.     }
  52.    
  53.     public function getExecutedQuerys() {
  54.         return $this->executedQuerys;
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement