数据库访问类的实现

Original 2019-04-15 11:25:18 256
abstract:extend目录下面新建util目录,SysDb.php<? phpnamespaceUtil;use think\Db; 期待的在controller中的调用方式 class SysDb extends Controller{ public function login(){ $this->db = new SysDb; $this->db->table('adm

extend目录下面新建util目录,SysDb.php

<? php

namespaceUtil;

use think\Db;


期待的在controller中的调用方式

class SysDb extends Controller{

public function login(){

$this->db = new SysDb;

$this->db->table('admin')->where(array('id'=>1))->item();//单条

$this->db->table('admin')->where(array('id'=>1))->lists();//多条


class SysDb{

//指定表名

public function table(){

//清空

$this->where=[];

$this->field="*";

$this->order='';

$this->limit=0;



$this->table = $table;

return $this;

}


//查询数据字段

public function field($field = '*'){

$this->fidld=$field;

return $this;

}


//加载数量限制

public function limit($limit){

$this->limit = $limit;

return $this;

}


//排序

public function order($order){

$this->order = $order;

return $this;

}


//指定查询条件,封装where方法

public function where($where = []){

$this->where = $where;

return $this;

}


//查询一条记录,封装一个item方法

public function item(){

return Db::name($this->table)->field($this->field)->where($this->where)->find();

}


//返回多条记录,封装一个lists方法

public function lists(){

$query = Db::name($this->table)->field($this->field)->where($this->where);

$this->limit && $query = $query->limit($this->limit);

$this->order && $query = $query->order($this->order);

return $query->select();

}


//封装一个自定义方法,对索引进行自定义

public function cates($index){

$query = Db::name($this->table)->field($this->field)->where($this->where);

$this->limit && $query = $query->limit($this->limit);

$this->order && $query = $query->order($this->order);

$lists = $query->select();

if(!$lists){

return $lists;

}

$result = [];

foreach($lists as $key => $value){

$result[$value[$index]] = $value;

}

return $result;

}


//分页

public function pages($pageSize = 10){

$total = Db::name($this->table)->where($this->where)->count();

$query = Db::name($this->table)->field($this->field)->where($this->where);

$this->order && $query = $query->order($this->order);

$data = $query->pagenate($pageSize,$total);

return array('total'=>$total,'lists'=>$data->items(),'pages'=>$data->render());

}



//添加

public function inser($data){

return Db::name($this->table)->insertGetId($data);//会返回主键id

}


//批量添加数据

public function insertAll($data){

return Db::name($this->table)->insertAll($data);

}


//修改数据

public function update($data){

return Db::name($this->table)->where($this->where)->update($data);

}


}


Correcting teacher:查无此人Correction time:2019-04-16 09:45:00
Teacher's summary:完成的不错。还可以组装更多的操作语句,继续加油。

Release Notes

Popular Entries