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); } } }
/** * 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; }