数据库访问类封装

Original 2019-03-22 15:26:59 219
abstract:<?php namespace Util; use think\Db; class SysDb { //指定表名 public function table($table) { $this->where = []; $this->field = '*';
<?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();
	}
}


Correcting teacher:查无此人Correction time:2019-03-22 17:15:27
Teacher's summary:完成的不错,继续加油。传值还可以继续整合,比如判断是否是数组传值。

Release Notes

Popular Entries