abstract:封装数据库访问类,代码更安全<?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); } }
Correcting teacher:天蓬老师Correction time:2019-05-09 13:56:57
Teacher's summary:这类封装并不是出于安全考虑, 主要是考虑使用方便, 将常用操作封装成方法, 利于后期代码维护