Example #1
0
 protected function run_query(Database $db, $sql)
 {
     if (!$sql) {
         return;
     }
     $table_prefix = $db->table_prefix();
     $sql = str_replace("\r", "\n", str_replace(' ' . ORIG_TABLEPRE, ' ' . $table_prefix, $sql));
     $sql = str_replace("\r", "\n", str_replace(' `' . ORIG_TABLEPRE, ' `' . $table_prefix, $sql));
     $ret = array();
     $num = 0;
     foreach (explode(";\n", trim($sql)) as $query) {
         $ret[$num] = '';
         $queries = explode("\n", trim($query));
         foreach ($queries as $query) {
             $ret[$num] .= isset($query[0]) && $query[0] == '#' || isset($query[1]) && isset($query[1]) && $query[0] . $query[1] == '--' ? '' : $query;
         }
         # 表前缀
         $ret[$num] = str_replace('{{table_prefix}}', $table_prefix, $ret[$num]);
         $num++;
     }
     unset($sql);
     foreach ($ret as $query) {
         $query = trim($query);
         if ($query) {
             if (strtoupper(substr($query, 0, 12)) == 'CREATE TABLE') {
                 $name = preg_replace('#CREATE TABLE `([a-z0-9_]+)` .*#is', "\\1", $query);
                 if ($db->query($query)->result()) {
                     $status = 'succeed';
                 } else {
                     $status = 'failed';
                 }
                 $this->show_js_message(__('create_table') . ' ' . $name . ' ... ' . __($status));
             } else {
                 $db->query($query);
             }
             usleep(10000);
         }
     }
 }
Example #2
0
 /**
  * Compiles the statements for DELETE
  *
  * @param   \Gleez\Database\Database  $db  The database instance
  * @return  \Gleez\Database\Query  The current object
  */
 public function compileDelete(Database $db)
 {
     $query = 'DELETE ';
     if ($this->into !== null) {
         $query .= 'FROM ' . $this->_identifier . $db->table_prefix() . $this->into . $this->_identifier . ' ';
     } elseif (!empty($this->from)) {
         $query .= 'FROM ' . $this->_identifier . $db->table_prefix() . $this->from[0] . $this->_identifier . ' ';
     }
     if (!empty($this->where)) {
         $query .= $this->compileWhere($db);
     }
     $this->_query = trim($query);
     return $this;
 }