private function __query($sql)
{
//{{{
//SQL MODE 默认为DELETE,INSERT,REPLACE 或 UPDATE,不需要返回值
$sql_mode = 1;
//1.更新模式 2.查询模式 3.插入模式
if (stripos($sql, "INSERT") === 0) {
$sql_mode = 3;
} else {
$sql_result_query = array("SELECT", "SHOW", "DESCRIBE", "EXPLAIN");
foreach ($sql_result_query as $query_type) {
if (stripos($sql, $query_type) === 0) {
$sql_mode = 2;
break;
}
}
}
//}}}
if (defined("DEBUG")) {
trigger_error("{$this->_engine_name} ( {$sql} )");
}
$result = $this->engine->query($sql);
if ($result) {
if ($sql_mode == 2) {
//查询模式
if (($data = $this->engine->getAll()) !== false) {
return $data;
}
} elseif ($sql_mode == 3) {
//插入模式
return $this->engine->lastId();
} else {
return $this->engine->count();
}
}
$this->error['code'] = $this->engine->errno();
$this->error['msg'] = $this->engine->error();
unset(Db::$_globals[$this->_key]);
trigger_error("DB QUERY ERROR (" . var_export($this->error['msg'], true) . "), CODE({$this->error['code']}), SQL({$sql})", E_USER_WARNING);
return false;
}