Advertisement
Guest User

Untitled

a guest
May 13th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.57 KB | None | 0 0
  1. <?php
  2. /*
  3.  * Fake dbal for mysql
  4.  *
  5.  * Works like the phpbb dbal
  6.  */
  7.  
  8. class dbal
  9. {
  10.     private $handle;
  11.    
  12.     public function sql_connect($host = '', $username = '', $password = '')
  13.     {
  14.         $this->handle = mysql_connect($host, $username, $password);
  15.     }
  16.    
  17.     public function sql_select_db($dbname)
  18.     {
  19.         return mysql_select_db($dbname, $this->handle);
  20.     }
  21.    
  22.     public function sql_escape($string)
  23.     {
  24.         return @mysql_real_escape_string($string, $this->handle);
  25.     }
  26.  
  27.     public function sql_query($sql)
  28.     {
  29.         return mysql_query($sql, $this->handle);
  30.     }
  31.    
  32.     public function sql_query_limit($sql, $limit, $offset)
  33.     {
  34.         $sql .= "\n LIMIT " . ((!empty($offset)) ? $offset . ', ' . $limit : $limit);
  35.         return $this->sql_query($sql);
  36.     }
  37.    
  38.     public function sql_fetchrow($result)
  39.     {
  40.         return mysql_fetch_array($result, MYSQL_ASSOC);
  41.     }
  42.    
  43.     public function sql_nextid()
  44.     {
  45.         return ($this->handle) ? mysql_insert_id($this->handle) : false;
  46.     }
  47.    
  48.     public function sql_freeresult($result)
  49.     {
  50.         return @mysql_free_result($result);
  51.     }
  52.    
  53.     public function sql_close()
  54.     {
  55.         return @mysql_close($this->handle);
  56.     }
  57.  
  58.     /*
  59.      * These functions came from phpBB's dbal
  60.      */
  61.      
  62.     public function sql_build_array($query, $assoc_ary = false)
  63.     {
  64.         if (!is_array($assoc_ary))
  65.         {
  66.             return false;
  67.         }
  68.  
  69.         $fields = $values = array();
  70.  
  71.         if ($query == 'INSERT' || $query == 'INSERT_SELECT')
  72.         {
  73.             foreach ($assoc_ary as $key => $var)
  74.             {
  75.                 $fields[] = $key;
  76.  
  77.                 if (is_array($var) && is_string($var[0]))
  78.                 {
  79.                     // This is used for INSERT_SELECT(s)
  80.                     $values[] = $var[0];
  81.                 }
  82.                 else
  83.                 {
  84.                     $values[] = $this->_sql_validate_value($var);
  85.                 }
  86.             }
  87.  
  88.             $query = ($query == 'INSERT') ? ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')' : ' (' . implode(', ', $fields) . ') SELECT ' . implode(', ', $values) . ' ';
  89.         }
  90.         else if ($query == 'MULTI_INSERT')
  91.         {
  92.             trigger_error('The MULTI_INSERT query value is no longer supported. Please use sql_multi_insert() instead.', E_USER_ERROR);
  93.         }
  94.         else if ($query == 'UPDATE' || $query == 'SELECT')
  95.         {
  96.             $values = array();
  97.             foreach ($assoc_ary as $key => $var)
  98.             {
  99.                 $values[] = "$key = " . $this->_sql_validate_value($var);
  100.             }
  101.             $query = implode(($query == 'UPDATE') ? ', ' : ' AND ', $values);
  102.         }
  103.  
  104.         return $query;
  105.     }
  106.    
  107.     private function _sql_validate_value($var)
  108.     {
  109.         if (is_null($var))
  110.         {
  111.             return 'NULL';
  112.         }
  113.         else if (is_string($var))
  114.         {
  115.             return "'" . $this->sql_escape($var) . "'";
  116.         }
  117.         else
  118.         {
  119.             return (is_bool($var)) ? intval($var) : $var;
  120.         }
  121.     }
  122. }
  123.  
  124. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement