PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
本文实例讲述了PHP封装类似thinkphp连贯操作数据库Db类与简单应用。分享给大家供大家参考,具体如下:
'localhost', 'dbname'=>'test', 'username'=>'root', 'password'=>'1234' );//数据库配置 /** *构造函数,连接数据库 */ publicfunction__construct(){ $link=$this->_db; if(!$link){ $db=mysqli_connect($this->_configs['hostname'],$this->_configs['username'],$this->_configs['password'],$this->_configs['dbname']); mysqli_query($db,"setnamesutf8"); if(!$db){ $this->ShowException("错误信息".mysqli_connect_error()); } $this->_db=$db; } } /** *获取所有数据 * *@param"; } } } $db=newDb(); //查询操作 var_dump($db->table('user')->where('id>2')->order('iddesc')->limit('2,4')->select()); //插入操作 var_dump($db->table('user')->insert(array('username'=>'user','password'=>'pwd'))); //更新操作 var_dump($db->table('user')->where('id=1')->update(array('username'=>'user1','password'=>'pwd1'))); //删除操作 var_dump($db->table('user')->where('id=1')->delete());$tableThetable * *@returnbooleanAll. */ publicfunctiongetAll($table=null){ $link=$this->_db; if(!$link)returnfalse; $sql="SELECT*FROM{$table}"; $data=mysqli_fetch_all($this->execute($sql)); return$data; } publicfunctiontable($table){ $this->_table=$table; return$this; } /** *实现查询操作 * *@paramstring$fieldsThefields * *@returnboolean(description_of_the_return_value) */ publicfunctionselect($fields="*"){ $fieldsStr=''; $link=$this->_db; if(!$link)returnfalse; if(is_array($fields)){ $fieldsStr=implode(',',$fields); }elseif(is_string($fields)&&!empty($fields)){ $fieldsStr=$fields; } $sql="SELECT{$fields}FROM{$this->_table}{$this->_where}{$this->_order}{$this->_limit}"; $data=mysqli_fetch_all($this->execute($sql)); return$data; } /** *order排序 * *@paramstring$orderTheorder * *@returnboolean(description_of_the_return_value) */ publicfunctionorder($order=''){ $orderStr=''; $link=$this->_db; if(!$link)returnfalse; if(is_string($order)&&!empty($order)){ $orderStr="ORDERBY".$order; } $this->_order=$orderStr; return$this; } /** *where条件 * *@paramstring$whereThewhere * *@return (description_of_the_return_value) */ publicfunctionwhere($where=''){ $whereStr=''; $link=$this->_db; if(!$link)return$link; if(is_array($where)){ foreach($whereas$key=>$value){ if($value==end($where)){ $whereStr.="`".$key."`='".$value."'"; }else{ $whereStr.="`".$key."`='".$value."'AND"; } } $whereStr="WHERE".$whereStr; }elseif(is_string($where)&&!empty($where)){ $whereStr="WHERE".$where; } $this->_where=$whereStr; return$this; } /** *group分组 * *@paramstring$groupThegroup * *@returnboolean(description_of_the_return_value) */ publicfunctiongroup($group=''){ $groupStr=''; $link=$this->_db; if(!$link)returnfalse; if(is_array($group)){ $groupStr="GROUPBY".implode(',',$group); }elseif(is_string($group)&&!empty($group)){ $groupStr="GROUPBY".$group; } $this->_group=$groupStr; return$this; } /** *limit限定查询 * *@paramstring$limitThelimit * *@return (description_of_the_return_value) */ publicfunctionlimit($limit=''){ $limitStr=''; $link=$this->_db; if(!$link)return$link; if(is_string($limit)||!empty($limit)){ $limitStr="LIMIT".$limit; }elseif(is_numeric($limit)){ $limitStr="LIMIT".$limit; } $this->_limit=$limitStr; return$this; } /** *执行sql语句 * *@param $sqlThesql * *@returnboolean(description_of_the_return_value) */ publicfunctionexecute($sql=null){ $link=$this->_db; if(!$link)returnfalse; $res=mysqli_query($this->_db,$sql); if(!$res){ $errors=mysqli_error_list($this->_db); $this->ShowException("报错啦!
错误号:".$errors[0]['errno']."
SQL错误状态:".$errors[0]['sqlstate']."
错误信息:".$errors[0]['error']); die(); } return$res; } /** *插入数据 * *@param$dataThedata * *@returnboolean(description_of_the_return_value) */ publicfunctioninsert($data){ $link=$this->_db; if(!$link)returnfalse; if(is_array($data)){ $keys=''; $values=''; foreach($dataas$key=>$value){ $keys.="`".$key."`,"; $values.="'".$value."',"; } $keys=rtrim($keys,','); $values=rtrim($values,','); } $sql="INSERTINTO`{$this->_table}`({$keys})VALUES({$values})"; mysqli_query($this->_db,$sql); $insertId=mysqli_insert_id($this->_db); return$insertId; } /** *更新数据 * *@param $dataThedata * *@return (description_of_the_return_value) */ publicfunctionupdate($data){ $link=$this->_db; if(!$link)return$link; if(is_array($data)){ $dataStr=''; foreach($dataas$key=>$value){ $dataStr.="`".$key."`='".$value."',"; } $dataStr=rtrim($dataStr,','); } $sql="UPDATE`{$this->_table}`SET{$dataStr}{$this->_where}{$this->_order}{$this->_limit}"; $res=$this->execute($sql); return$res; } /** *删除数据 * *@return (description_of_the_return_value) */ publicfunctiondelete(){ $link=$this->_db; if(!$link)return$link; $sql="DELETEFROM`{$this->_table}`{$this->_where}"; $res=$this->execute($sql); return$res; } /** *异常信息输出 * *@param $varThevariable */ privatefunctionShowException($var){ if(is_bool($var)){ var_dump($var); }elseif(is_null($var)){ var_dump(NULL); }else{ echo" ".print_r($var,true)."
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。