摘要:封装数据库访问类,代码更安全<?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/5/9 * Time: 9:40 */ namespace Util;
封装数据库访问类,代码更安全
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/5/9
* Time: 9:40
*/
namespace Util;
use think\Db;
class SysDb
{
//指定表名
public function table($table){
//清空where等查询条件
$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 = [];
//有数据构造新的数组$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(); //数据总量$total
$query = Db::name($this->table)->field($this->field)->where($this->where);
$this->order && $query = $query->order($this->order);
$data = $query->paginate($pageSize,$total);
return array('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);
}
}
批改老师:天蓬老师批改时间:2019-05-09 13:56:57
老师总结:这类封装并不是出于安全考虑, 主要是考虑使用方便, 将常用操作封装成方法, 利于后期代码维护