abstrak:封裝數(shù)據(jù)庫訪問類,代碼更安全<?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/5/9 * Time: 9:40 */ namespace Util;
封裝數(shù)據(jù)庫訪問類,代碼更安全
<?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; } //加載查詢數(shù)量 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 = []; //有數(shù)據(jù)構(gòu)造新的數(shù)組$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(); //數(shù)據(jù)總量$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()); } //添加數(shù)據(jù) public function insert($data){ return Db::name($this->table)->insertGetId($data); } //批量插入數(shù)據(jù)的方法 public function insertAll($data){ return Db::name($this->table)->insertAll($data); } //修改更新數(shù)據(jù)的方法 public function update($data){ return Db::name($this->table)->where($this->where)->update($data); } }
Guru membetulkan:天蓬老師Masa pembetulan:2019-05-09 13:56:57
Rumusan guru:這類封裝并不是出于安全考慮, 主要是考慮使用方便, 將常用操作封裝成方法, 利于后期代碼維護(hù)