Guest User

Untitled

a guest
Dec 8th, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.74 KB | None | 0 0
  1. <?php
  2.  
  3. class Db
  4. {
  5.  
  6.     private $db;
  7.  
  8.         function __construct()
  9.         {
  10.             //build config
  11.             require("./config.php");
  12.             $this->config = $config;
  13.             unset($config);
  14.  
  15.             $host = 'localhost';
  16.             $port = 3306;
  17.             $database = 'test';
  18.             $username = 'root';
  19.             $password = '';
  20.  
  21.             $dsn = "mysql:host=$host;port=$port;dbname=$database";
  22.             $this->db = new PDO($dsn, $username, $password);
  23.         }
  24.  
  25.         function log($text)
  26.         {
  27.             if(is_writable($this->config['LOG_FILE']) && $this->config['LOGGING'])
  28.             {
  29.                 $fp = fopen($this->config['LOG_FILE'], 'a');
  30.                 fwrite($fp, $text . "\n");
  31.                 fclose($fp);
  32.             }
  33.         }
  34.  
  35.         function sql($sql)
  36.         {
  37.             $this->db->query($sql);
  38.         }
  39.        
  40.         function select($select)
  41.         {
  42.             $sql = "SELECT " . (isset($select['SELECT']) ? $select['SELECT'] : "*") . " FROM ";
  43.  
  44.             if (!isset($select['FROM'])) die("FROM not set");
  45.  
  46.             if (is_array($select['FROM']))
  47.                 foreach ($select['FROM'] as $where => $whereas)
  48.                     $sql .= "$where AS $whereas, ";
  49.             else $sql .= $select['FROM'] . " ";
  50.  
  51.             if (is_array($select['WHERE']))
  52.             {
  53.                 $sql .= "WHERE ";
  54.                 foreach ($select['WHERE'] as $where => $squals)
  55.                 {
  56.                     $sql .= "$where = ? AND ";
  57.                     $where_ary[] = $equals;
  58.                 }
  59.             }
  60.             else if (isset($select['WHERE']))
  61.             {
  62.                 $sql .= "WHERE " . $select['WHERE'] . " ";
  63.             }
  64.  
  65.             $sql .= (isset($select['ORDER']) ? "ORDER BY " . $select['ORDER'] . " " : "") . (isset($select['LIMIT']) ? "LIMIT " . $select['LIMIT'] . " " : "");
  66.  
  67.             $statement = $this->db->prepare($sql);
  68.             $statement->execute($where_ary);
  69.             return $statement;
  70.         }
  71.  
  72.         function select_row($select)
  73.         {
  74.             $statement = $this->select($select) or die("lol");
  75.  
  76.             while ($result = $statement->fetch())
  77.                 return $result;
  78.         }
  79.  
  80.         function insert($insert)
  81.         {
  82.             $i=0;
  83.             foreach (array_keys($insert['VALUES']) as $value)
  84.             {
  85.                 $value_keys .= $value;
  86.                 if ($i < count($insert['VALUES'])-1) $value_keys .= ", ";
  87.                 $i++;
  88.             }
  89.  
  90.             $values_ary = array_values($insert['VALUES']);
  91.             $values = "?";
  92.             for ($i=0; $i<count($insert['VALUES'])-1; $i++)
  93.                 $values .= ", ?";
  94.  
  95.             $sql = "INSERT INTO " . $insert['TABLE'] . " ($value_keys) VALUES ($values);";
  96.  
  97.             $statement = $this->db->prepare($sql);
  98.             $statement->execute($values_ary);
  99.             return $statement;
  100.         }
  101.  
  102.         function update($update)
  103.         {
  104.             $sql = "UPDATE " . $update['TABLE'] . " SET ";
  105.  
  106.             if (is_array($update['VALUES']))
  107.             {
  108.                 $i=0;
  109.                 foreach($update['VALUES'] as $value => $to)
  110.                 {
  111.                     $sql .= "$value = ?";
  112.                     if ($i < count($update['VALUES'])-1) $sql .= ", ";
  113.                     $update_ary[] = $to;
  114.                     $i++;
  115.                 }
  116.             }
  117.             else $sql .= $update['VALUES'] . " ";
  118.  
  119.             $sql .= " WHERE ";
  120.  
  121.             if (is_array($update['WHERE']))
  122.             {
  123.                 $i=0;
  124.                 foreach($update['WHERE'] as $value => $is)
  125.                 {
  126.                     $sql .= "$value = ?";
  127.                     if ($i < count($update['WHERE'])-1) $sql .= ", ";
  128.                     $update_ary[] = $is;
  129.                     $i++;
  130.                 }
  131.             }
  132.             else $sql .= $update['WHERE'] . " ";
  133.  
  134.             $statement = $this->db->prepare($sql);
  135.             $statement->execute($update_ary);
  136.             return $statement;
  137.         }
  138.  
  139.         function delete($delete)
  140.         {
  141.             $sql = "DELETE FROM " . $delete['FROM'] . " WHERE ";
  142.  
  143.             if (is_array($delete['WHERE']))
  144.             {
  145.                 $i=0;
  146.                 foreach($delete['WHERE'] as $value => $is)
  147.                 {
  148.                     $sql .= "$value = ?";
  149.                     if ($i<count($delete['WHERE'])-1) $sql .= ", ";
  150.                     $values_ary[] = $is;
  151.                     $i++;
  152.                 }
  153.                 echo $sql . print_r($values_ary);
  154.                 $statement = $this->db->prepare($sql);
  155.                 $statement->execute($values_ary);
  156.                 return $statement;
  157.             }
  158.            
  159.             $sql .= $delete['WHERE'];
  160.             $this->sql($sql);
  161.         }
  162.  
  163.         function clean($table)
  164.         {
  165.             $this->sql("DELETE FROM " . $table);
  166.         }
  167.  
  168.         function drop($table)
  169.         {
  170.             $this->sql("DROP TABLE " . $table);
  171.         }
  172. }
  173.  
  174. ?>
Add Comment
Please, Sign In to add comment