host = $config['host'] ? $config['host'] : 'localhost'; $this->port = $config['port'] ? $config['port'] : '3306'; $this->user = $config['user'] ? $config['user'] : 'root'; $this->pass = $config['pass'] ? $config['pass'] : ''; $this->data = $config['data'] ? $config['data'] : ''; $this->debug = $config[debug] ? $config[debug] : false; $this->prefix = $config['prefix'] ? $config['prefix'] : 'qinggan_'; if($this->data) { $ifconnect = $this->connect($this->data); if(!$ifconnect) { $this->conn = false; return false; } } return true; } #[兼容php4] function db_mysqli($config=array()) { return $this->__construct($config); } #[连接数据库] function connect($database=) { $start_time = $this->time_used(); if(!$this->port) $this->port = 3306; $this->conn = @mysqli_connect($this->host,$this->user,$this->pass,,$this->port) or false; if(!$this->conn) { return false; } $version = $this->get_version(); if($version>4.1) { mysqli_query($this->conn,set names 'utf8'); if($version>5.0.1) { mysqli_query($this->conn,set sql_mode=''); } } $end_time = $this->time_used(); $this->conn_times += round($end_time - $start_time,5);#[连接数据库的时间] $ifok = $this->select_db($database); return $ifok ? true : false; } function select_db($data=) { $database = $data ? $data : $this->data; if(!$database) { return false; } $this->data = $database; $start_time = $this->time_used(); $ifok = mysqli_select_db($this->conn,$database); if(!$ifok) { return false; } $end_time = $this->time_used(); $this->conn_times += round($end_time - $start_time,5);#[连接数据库的时间] return true; } #[关闭数据库连接,当您使用持续连接时该功能失效] function close() { if(is_resource($this->conn)) { return mysqli_close($this->conn); } else { return true; } } function __destruct() { return $this->close(); } function set($name,$value) { if($name == rs_type) { $value = strtolower($value) == num ? mysqli_num : mysqli_assoc; } $this->$name = $value; } function query($sql) { if(!is_resource($this->conn)) { $this->connect(); } else { if(!mysql_ping($this->conn)) { $this->close(); $this->connect(); } } if($this->debug) { $sqlkey = md5($sql); if($this->querylist) { $qlist = array_keys($this->querylist); if(in_array($sqlkey,$qlist)) { $count = $this->querylist[$sqlkey][count] + 1; $this->querylist[$sqlkey] = array(sql=>$sql,count=>$count); }else{ $this->querylist[$sqlkey] = array(sql=>$sql,count=>1); } } else{ $this->querylist[$sqlkey] = array(sql=>$sql,count=>1); } } $start_time = $this->time_used(); $func = $this->unbuffered && function_exists(mysqli_multi_query) ? mysqli_multi_query : mysqli_query; $this->result = @$func($this->conn,$sql); $this->query_count++; $end_time = $this->time_used(); $this->query_times += round($end_time - $start_time,5);#[查询时间] if(!$this->result) { return false; } return $this->result; } function get_all($sql=,$primary=) { $result = $sql ? $this->query($sql) : $this->result; if(!$result) { return false; } $start_time = $this->time_used(); $rs = array(); $is_rs = false; while($rows = mysqli_fetch_array($result,$this->rs_type)) { if($primary && $rows[$primary]) { $rs[$rows[$primary]] = $rows; } else { $rs[] = $rows; } $is_rs = true; } $end_time = $this->time_used(); $this->query_times += round($end_time - $start_time,5);#[查询时间] return ($is_rs ? $rs : false); } function get_one($sql=) { $start_time = $this->time_used(); $result = $sql ? $this->query($sql) : $this->result; if(!$result) { return false; } $rows = mysqli_fetch_array($result,$this->rs_type); $end_time = $this->time_used(); $this->query_times += round($end_time - $start_time,5);#[查询时间] return $rows; } function insert_id($sql=) { if($sql) { $rs = $this->get_one($sql); return $rs; } else { return mysqli_insert_id($this->conn); } } function insert($sql) { $this->result = $this->query($sql); $id = $this->insert_id(); return $id; } function all_array($table,$condition=,$orderby=) { if(!$table) { return false; } $table = $this->prefix.$table; $sql = select * from .$table; if($condition && is_array($condition) && count($condition)>0) { $sql_fields = array(); foreach($condition as $key=>$value) { $sql_fields[] = `.$key.`='.$value.' ; } $sql .= where .implode( and ,$sql_fields); } if($orderby) { $sql .= order by .$orderby; } $rslist = $this->get_all($sql); return $rslist; } function one_array($table,$condition=) { if(!$table) { return false; } $table = $this->prefix.$table; $sql = select * from .$table; if($condition && is_array($condition) && count($condition)>0) { $sql_fields = array(); foreach($condition as $key=>$value) { $sql_fields[] = `.$key.`='.$value.' ; } $sql .= where .implode( and ,$sql_fields); } $rslist = $this->get_one($sql); return $rslist; } //将数组写入数据中 function insert_array($data,$table,$insert_type=insert) { if(!$table || !is_array($data) || !$data) { return false; } $table = $this->prefix.$table;//自动增加表前缀 if($insert_type == insert) { $sql = insert into .$table; } else { $sql = replace into .$table; } $sql_fields = array(); $sql_val = array(); foreach($data as $key=>$value) { $sql_fields[] = `.$key.`; $sql_val[] = '.$value.'; } $sql.= (.(implode(,,$sql_fields)).) values(.(implode(,,$sql_val)).); return $this->insert($sql); } //更新数据 function update_array($data,$table,$condition) { if(!$data || !$table || !$condition || !is_array($data) || !is_array($condition)) { return false; } $table = $this->prefix.$table;//自动增加表前缀 $sql = update .$table. set ; $sql_fields = array(); foreach($data as $key=>$value) { $sql_fields[] = `.$key.`='.$value.'; } $sql.= implode(,,$sql_fields); $sql_fields = array(); foreach($condition as $key=>$value) { $sql_fields[] = `.$key.`='.$value.' ; } $sql .= where .implode( and ,$sql_fields); return $this->query($sql); } function count($sql=) { if($sql) { $this->rs_type = mysqli_num; $this->query($sql); $rs = $this->get_one(); $this->rs_type = mysqli_assoc; return $rs[0]; } else { return mysqli_num_rows($this->result); } } function num_fields($sql=) { if($sql) { $this->query($sql); } return mysqli_num_fields($this->result); } function list_fields($table) { $rs = $this->get_all(show columns from .$table); if(!$rs) { return false; } foreach($rs as $key=>$value) { $rslist[] = $value[field]; } return $rslist; } #[显示表名] function list_tables() { $rs = $this->get_all(show tables); return $rs; } function table_name($table_list,$i) { return $table_list[$i]; } function escape_string($char) { if(!$char) { return false; } return mysqli_escape_string($this->conn,$char); } function get_version() { return mysqli_get_server_info($this->conn); } function time_used() { $time = explode( ,microtime()); $used_time = $time[0] + $time[1]; return $used_time; } //mysql的查询时间 function conn_times() { return $this->conn_times + $this->query_times; } //mysql查询资料 function conn_count() { return $this->query_count; } # 高效sql生成查询,仅适合单表查询 function phpok_one($tbl,$condition=,$fields=*) { $sql = select .$fields. from .$this->db->prefix.$tbl; if($condition) { $sql .= where .$condition; } return $this->get_one($sql); } function debug() { if(!$this->querylist || !is_array($this->querylist) || count($this->querylist) querylist as $key=>$value) { $html .= ''.$value['sql'].'
'; $html .= ''.$value[count].'
'; } $html.=
; $html.=
; return $html; } function conn_status() { if(!$this->conn) return false; return true; }}?>
