class db{ /** * 定义数据库连接 */ /** * return 返回一个值叫做链式调用 *每执行完一个方法就会返回当前对象 *返回的对象 可以调用类中的成员变量和成员方法 */ protected $mysqli; //连接工具 protected $table; //数据表 protected $opt; //存储条件 function __construct($table_name){ //定义一个数据库连接 $this->config($table_name); } protected function config($table_name){ $this->mysqli=new mysqli(HOST, USER, PWD, DBBASE); $this->table=$table_name; //表名 if(mysqli_connect_errno()){ echo "数据库连接错误".mysqli_connect_erron(); exit(); } $this->mysqli->query("set names 'latin1'"); $this->opt['filed']="*"; //设置默认查询字段 $this->opt['where']=$this->opt['limit']=$this->opt['order']=$this->opt['group']=' '; //设置他们的条件都为空 } /** * 获取表的字段 */ function fileds(){ $result=$this->mysqli->query("DESC{$this->table}"); //查询表结构 $filedsarray=array(); while ($rows=$result->fetch_assoc()!=false){ //循环字段关联数组 $filedsarray[]=$rows['Field']; } return $filedsarray; } /** * 查询表的字段 * */ function filed($filed){ /*首先$filed就是字段 查询的字段 首先判断获取的字段是否是字符串 * */ if (is_string($filed)){ $filedarry=explode(",", $filed); /*分割字符串*/ }else{ $filedarry=$filed; } if(is_array($filedarry)){ $filed=""; foreach ($filedarry as $v){ $filed .= "`" . $v . "`" . ","; } } return rtrim($filed,","); } /** * 条件方法where */ function where($where){ if(is_string($where)){ $this->opt['where']="WHERE".$where; }else{ $this->opt['where']=""; } return $this; } /** * limit 条件 */ function limit($limit){ if(is_string($limit)){ $this->opt['limit']="LIMIT".$limit; }else{ $this->opt['limit']=""; } return $this; } /** * order by 条件 */ function order($order){ if (is_string($order)){ $this->opt['order']="ORDER BY".$order; }else{ $this->opt['order']=""; } return $this; } /** * group by 调教 */ function group($group){ if (is_string($group)){ $this->opt['group']="GROUP BY".$group; }else{ $this->opt['group']=""; } return $this; } /** * select语句查询 */ function select(){ /** * $sql=select * from 表名 where limiy order by group by */ $sql="SELECT {$this->opt['filed']} FROM {$this->table} {$this->opt['where']}{$this->opt['order']}{$this->opt['group']}{$this->opt['limit']}"; return $this->sql($sql); } /** * delete 删除语句 */ function delate($id=""){ if($id==""&&empty($this->opt['where'])) die ("获取的查询条件不能为空"); if($id!=""){ if(is_array($id)){ $id=implode(",",$id);/*implode 将获取的数组分割成字符串 每分割一个加个逗号*/ } $this->opt['where']="WHERE id IN(".$id.")"; } /*delete from 表名 where 条件*/ $sql="DELETE FROM {$this->table} {$this->opt['where']} {$this->opt['limit']}"; echo $sql."<br/>"; return $this->query($sql); } /** * 返回sql语句结果集 */ function sql($sql) { $result = $this->mysqli ->query ( $sql ) or die ( $this->dbError () ); $resultArr = array (); while ( ($row = $result->fetch_assoc ()) != false ) { $resultArr [] = $row; } return $resultArr; } /** * insert语句 */ function insert($ins){ is_array($ins) or die("非法数组"); $fileds=$this->filed(array_keys($ins)); var_dump($fileds); $values=$this->values(array_values($ins)); var_dump($values); $sql="INSERT INTO {$this->table}(".$fileds.") VALUES(".$values.")"; if($this->query($sql)>0){ return $this->mysqli->insert_id; } } /** * 将数组转换字符串并进行转义 */ protected function values($value){ if (!get_magic_quotes_gpc()){ $str=""; foreach ($value as $v){ $str.="'".addslashes($v)."',"; } }else{ foreach ($value as $v){ $str.="'.$v.',"; } } return rtrim($str,","); } /** * 没有结果集 */ function query($sql){ $this->mysqli->query($sql)or die($this->error()); return $this->mysqli->affected_rows; //返回前一个 Mysql 操作的受影响行数 } /** * update 更新语句 * update biao set 列明=新值 where 列明=某值 */ function update($up){ is_array($sql)or die("非法字符串"); if (empty($this->opt['where'])) die("条件不能为空"); $set=""; $gpc=get_magic_quotes_gpc(); while (list($k,$v)=each($up)){ $v = ! $gpc ? addslashes ( $v ) : $v; $set .= "`{$k}`='" . $v . "',"; } $set=rtrim($set,","); $sql="UPDATE {$this->table} SET $set {$this->opt['where']}"; return $this->query($sql); } /** * 查寻总记录记录数 */ function count($tablename=""){ $tabname = $tabname == '' ? $this->table : $tabname; $sql = "SELECT `id` FROM {$tabname} {$this->opt['where']}"; return $this->query ( $sql ); } /** * 查询单机路数 */ function find($id){ $sql = "SELECT {$this->opt['field']} FROM {$this->table} WHERE `id` = {$id}"; return $this->sql ( $sql ); } /** * 返回错误 */ function error(){ return $this->mysqli->error; } }