<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                知識點: 1、鏈式介紹 2、類庫申明 3、類庫調用 4、參考網址 [TOC] 本文對理解數據庫鏈式操作有幫助,特此說明。 ## 一、鏈式介紹 數據庫提供的鏈式操作方法,可以有效的提高數據存取的代碼清晰度和開發效率,并且支持所有的CURD操作。 使用也比較簡單,假如我們現在要查詢一個User表的滿足狀態為1的前10條記錄,并希望按照用戶的創建時間排序 ,代碼如下: ~~~ Db::table('think_user') ->where('status',1) ->order('create_time') ->limit(10) ->select(); ~~~ 這里的where()、order()和limit()方法就被稱之為鏈式操作方法,除了select方法必須放到最后一個外(因為select方法并不是鏈式操作方法),鏈式操作的方法調用順序沒有先后,例如,下面的代碼和上面的等效: ~~~ Db::table('think_user') ->order('create_time') ->limit(10) ->where('status',1) ->select(); ~~~ 其實不僅僅是查詢方法可以使用連貫操作,包括所有的CURD方法都可以使用,例如: ~~~ Db::table('think_user') ->where('id',1) ->field('id,name,email') ->find(); Db::table('think_user') ->where('status',1) ->where('id',1) ->delete(); ~~~ 鏈式操作在完成查詢后會自動清空鏈式操作的所有傳值。簡而言之,鏈式操作的結果不會帶入后面的其它查詢。 ## 二、類庫申明 ### 1、類庫位置 \extend\Util\data\Sysdb.php ### 2、申明代碼 ~~~ <?php namespace Util\data; use think\Db; class Sysdb{ // 指定表名 public function table($table){ $this->where = array(); $this->field = '*'; $this->order = ''; $this->table = $table; return $this; } // 指定查詢字段 public function field($field = '*'){ $this->field = $field; return $this; } // 排序 public function order($order){ $this->order = $order; return $this; } // 指定查詢條件 public function where($where = array()){ $this->where = $where; return $this; } // 返回一條記錄 public function item(){ $item = Db::name($this->table)->field($this->field)->where($this->where)->find(); return $item ? $item : false; } // 返回list public function lists(){ $query = Db::name($this->table)->field($this->field)->where($this->where); $this->order && $query = $query->order($this->order); $lists = $query->select(); return $lists ? $lists : false; } // 自定義索引列表 public function cates($index){ $query = Db::name($this->table)->field($this->field)->where($this->where); $this->order && $query = $query->order($this->order); $lists = $query->select(); if(!$lists){ return false; } $results = []; foreach ($lists as $key => $value) { $results[$value[$index]] = $value; } return $results; } // 分頁 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 array('total'=>$total,'lists'=>$data->items(),'pages'=>$data->render()); } // 添加 public function insert($data){ $res = Db::name($this->table)->insert($data); return $res; } // 修改 public function update($data){ $res = Db::name($this->table)->where($this->where)->update($data); return $res; } // 刪除 public function delete(){ $res = Db::name($this->table)->where($this->where)->delete(); return $res; } } ~~~ ## 三、類庫調用 ### 1、類庫引入 ~~~ <?php namespace app\admins\controller; use think\Controller; use Util\data\Sysdb; class BaseAdmin extends Controller { ....... } ?> ~~~ ### 2、創建對象 ~~~ $this->db = new Sysdb; ~~~ ### 3、鏈式調用 ~~~ $admin = $this->db->table('admins')->where(array('username'=>$username))->item(); ~~~ ### 4、完整代碼 ~~~ <?php namespace app\admins\controller; use think\Controller; use Util\data\Sysdb; /** * */ class Account extends Controller { public function login(){ return $this->fetch(); } // 管理員登錄 public function dologin(){ $username = trim(input('post.username')); $pwd = trim(input('post.pwd')); $verifycode = trim(input('post.verifycode')); if($username == ''){ exit(json_encode(array('code'=>1,'msg'=>'用戶名不能為空'))); } if($pwd == ''){ exit(json_encode(array('code'=>1,'msg'=>'密碼不能為空'))); } if($verifycode == ''){ exit(json_encode(array('code'=>1,'msg'=>'請輸入驗證碼'))); } // 驗證驗證碼 if(!captcha_check($verifycode)){ exit(json_encode(array('code'=>1,'msg'=>'驗證碼錯誤'))); } // 驗證用戶 $this->db = new Sysdb; $admin = $this->db->table('admins')->where(array('username'=>$username))->item(); if(!$admin){ exit(json_encode(array('code'=>1,'msg'=>'用戶不存在'))); } if(md5($admin['username'].$pwd) != $admin['password']){ exit(json_encode(array('code'=>1,'msg'=>'密碼錯誤'))); } if($admin['status'] == 1){ exit(json_encode(array('code'=>1,'msg'=>'用戶已被禁用'))); } // 設置用戶session session('admin',$admin); exit(json_encode(array('code'=>0,'msg'=>'登錄成功'))); } public function logout(){ session('admin',null); exit(json_encode(array('code'=>0,'msg'=>'退出成功'))); } } ~~~ ## 四、參考網址 1、鏈式操作 http://www.hmoore.net/manual/thinkphp5/135180 2、天龍八部之實戰愛奇藝/ThinkPHP5/PHP實戰 https://ke.qq.com/course/305634#undefined=1
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看