首页 > 数据库 > MySQL > 正文

PHP以mysqli方式连接类完整代码实例

2020-03-22 18:27:03
字体:
来源:转载
供稿:网友
本文所述的是一个在PHP中以mysqli方式连接数据库的一个数据库类实例,该数据库类是从一个PHP的CMS中整理出来的,可实现PHP连接数据库类,html' target='_blank'>MySQLi版,兼容PHP4,对于有针对性需要的朋友可根据此代码进行优化和修改。#==================================================================================================# Filename: /db/db_mysqli.php# Note : 连接数据库类,MySQLi版#==================================================================================================#[类库sql]class db_mysqli var $query_count = 0; var $host; var $user; var $pass; var $data; var $conn; var $result; var $prefix = "qinggan_"; //返回结果集类型,默认是数字+字符 var $rs_type = MYSQLI_ASSOC; var $query_times = 0;#[查询时间] var $conn_times = 0;#[连接数据库时间] var $unbuffered = false; //定义查询列表 var $querylist; var $debug = false; #[构造函数] function __construct($config=array()) $this- 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"= else{ $this- querylist[$sqlkey] = array("sql"= $sql,"count"= $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) 1) return false; $html = ' table cellpadding="0" cellspacing="0" width="100%" bgcolor="#CECECE" tr td $html.= ' table cellpadding="1" cellspacing="1" width="100%" $html.= ' tr th bgcolor="#EFEFEF" height="30px" SQL /th th bgcolor="#EFEFEF" width="80px" 查询 /th /tr foreach($this- querylist AS $key= $value) $html .= ' tr td bgcolor="#FFFFFF" div '.$value['sql'].' /div /td $html .= ' td align="center" bgcolor="#FFFFFF" div '.$value["count"].' /div /td /tr $html.= " /table $html.= " /td /tr /table return $html; function conn_status() if(!$this- conn) return false; return true;PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表