Guest User

Untitled

a guest
Jun 28th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.96 KB | None | 0 0
  1. <?php
  2. class DatabaseController
  3. {
  4.     private $abstraction;
  5.     public $error = false;
  6.     public $error_message;
  7.     public function __construct($host=null, $name=null, $username=null, $password=null)
  8.     {
  9.         if (empty($host) || empty($name)  || empty($username))
  10.         {
  11.             $this->error = true;
  12.             return false;
  13.         }
  14.         try
  15.         {
  16.             // We may decide to put this all on one line later, but it gets a little hard to read that way.
  17.             $this->abstraction = new PDO(
  18.                 'mysql:host=' . $host . ';dbname=' . $name,
  19.                 $username,
  20.                 $password
  21.             );
  22.         }
  23.         catch (Exception $e)
  24.         {
  25.             $this->error = true;
  26.             $this->error_message = $e;
  27.         }
  28.     }
  29.  
  30.     public function get_all($sql=null, $parameters=null)
  31.     {
  32.         if (empty($sql) || $this->error)
  33.             return false;
  34.  
  35.         $statement = $this->abstraction->prepare($sql);
  36.  
  37.         if (!$statement)
  38.             return false;
  39.  
  40.         if (is_array($parameters))
  41.         {
  42.             foreach ($parameters as $identifier => $info)
  43.             {
  44.                 switch ($info[1])
  45.                 {
  46.                     case 'int':
  47.                         $binder = PDO::PARAM_INT;
  48.                     break;
  49.  
  50.                     case 'string':
  51.                         $binder = PDO::PARAM_STR;
  52.                         break;
  53.  
  54.                     default:
  55.                         $binder = PDO::PARAM_STR;
  56.                         break;
  57.                 }
  58.  
  59.                 $statement->bindParam($identifier, $info[0], $binder);
  60.             }
  61.         }
  62.  
  63.         $statement->execute();
  64.         $data = $statement->fetchAll();
  65.         $statement->closeCursor();
  66.  
  67.         return $data ? $data : false;
  68.     }
  69.  
  70.     public function get_one($sql=null, $parameters=null)
  71.     {
  72.         if (empty($sql) || $this->error)
  73.             return false;
  74.  
  75.         $statement = $this->abstraction->prepare($sql);
  76.  
  77.         if (!$statement)
  78.             return false;
  79.  
  80.         if (is_array($parameters))
  81.         {
  82.             foreach ($parameters as $identifier => $info)
  83.             {
  84.                 switch ($info[1])
  85.                 {
  86.                     case 'int':
  87.                         $binder = PDO::PARAM_INT;
  88.                     break;
  89.  
  90.                     case 'string':
  91.                         $binder = PDO::PARAM_STR;
  92.                         break;
  93.  
  94.                     default:
  95.                         $binder = PDO::PARAM_STR;
  96.                         break;
  97.                 }
  98.  
  99.                 $statement->bindParam($identifier, $info[0], $binder);
  100.             }
  101.         }
  102.  
  103.         $statement->execute();
  104.         $data = $statement->fetch(PDO::FETCH_ASSOC);
  105.         $statement->closeCursor();
  106.  
  107.         return $data ? $data : false;
  108.     }
  109.  
  110.     public function query($sql=null, $parameters=null, $strict=true, $is_msg=false)
  111.     {
  112.         if (empty($sql) || $this->error)
  113.             return false;
  114.  
  115.         $statement = $this->abstraction->prepare($sql);
  116.  
  117.         if (!$statement)
  118.             return false;
  119.  
  120.         if (is_array($parameters))
  121.         {
  122.             if ($is_msg == true)
  123.                 require_once('parse_bbc.php');
  124.             foreach ($parameters as $identifier => $info)
  125.             {
  126.                 $val = $info[0];
  127.                 switch ($info[1])
  128.                 {
  129.                     case 'int':
  130.                         $binder = PDO::PARAM_INT;
  131.                     break;
  132.  
  133.                     case 'string':
  134.                         $binder = PDO::PARAM_STR;
  135.                         if ($strict)
  136.                             $val = htmlspecialchars(trim($val));
  137.                         break;
  138.  
  139.                     default:
  140.                         $binder = PDO::PARAM_STR;
  141.                         if ($strict)
  142.                             $val = htmlspecialchars(trim($val));
  143.                         break;
  144.                 }
  145.                 if ($is_msg == true)
  146.                     $val = new parse_bbc($val);
  147.  
  148.                 $statement->bindParam($identifier, $val, $binder);
  149.                 unset ($val);
  150.             }
  151.         }
  152.  
  153.         $statement->execute();
  154.         $statement->closeCursor();
  155.  
  156.         return true;;
  157.     }
  158. }
Add Comment
Please, Sign In to add comment