数据库访问类封装
黄志博2019-03-22 15:26:59219<?php
namespace Util;
use think\Db;
class SysDb
{
//指定表名
public function table($table)
{
$this->where = [];
$this->field = '*';
$this->order = '';
$this->limit = 0;
$this->table = $table;
return $this;
}
//指定查询字段
public function field($field = '')
{
$this->field = $field;
return $this;
}
//指定数量
public function limit($limit)
{
$this->limit = $limit;
return $this;
}
//排序
public function order($order)
{
$this->order = $order;
return $this;
}
//指定查询条件
public function where($where=[])
{
$this->where = $where;
return $this;
}
//返回一条记录
public function item()
{
return Db::name($this->table)->field($this->field)->where($this->where)->find();
}
// 返回多条记录
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->paginate($pageSize,$total);
return ['total'=>$total,'lists'=>$data->items(),'pages'=>$data->render()];
}
//添加
public function insert($data)
{
return Db::name($this->table)->insertGetId($data);
}
//批量添加数据
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);
}
// 删除
public function delete()
{
return Db::name($this->table)->where($this->where)->delete();
}
}