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$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)." ";
}
}
}
$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());
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。