<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>

                ## 刪除記錄:destroy( ) #### 1. 功能:根據條件從數據表中刪除數據。 >[info] ThinkPHP5 推薦使用這個方法刪除數據。 **** #### 2. 源碼:/thinkphp/library/think/Model.php >[info] 源碼本身并無注釋,下面代碼注釋為本人所加,以便于讀者學習。 ~~~~ /** * 刪除記錄 * @access public * @param mixed $data 主鍵列表 支持閉包查詢條件 * @return integer 成功刪除的記錄數 */ public static function destroy($data) { //很多靜態方法中都能看到這個語句:實例化調用此方法的類 $model = new static(); $query = $model->db(); //獲取數據庫連接實例 //如果參數為數組并且是關聯數組(元素鍵名不為0) if (is_array($data) && key($data) !== 0) { //將數組做為條件表達式 $query->where($data); $data = null; //清空本次查詢條件 } elseif ($data instanceof \Closure) { // 如果不是數組,則視為閉包查詢 //自動調用自定義的閉包函數 call_user_func_array($data, [ & $query]); $data = null; //執行完畢清空條件 } elseif (is_null($data)) { //如以上都不滿足,再判斷參數是否為空 return 0; //參數為空,則返回0 :假 } //根據條件,獲取結果集 $resultSet = $query->select($data); $count = 0; //計數器清零,為統計返回值做準備 if ($resultSet) { //如果結果集存在 foreach ($resultSet as $data) { //遍歷該結果集 $result = $data->delete(); //逐條刪除記錄 $count += $result; //計數器自增 } } return $count; //返回刪除的記錄數量 } ~~~~ >[warning] 注意:這是一個靜態方法,外部調用時要注意! **** #### 3. 參數與返回值 * 參數 |序號|參數|說明| |:---:|---|---| |1|$key / 主鍵| 刪除單條記錄,與delete方法類似| |2|$array / 主鍵列表|刪除多條記錄,主鍵列表放在數組中| |3|$where / 條件表達式| 支持所有的查詢表達式| |3|$closure / 閉包函數| 閉包函數中僅支持使用where方法| * 返回值:成功刪除的記錄數量。 ***** #### 4. 實例演示: 一、根據主鍵刪除記錄: * 1. 刪除單條記錄 >[info] 主鍵直接寫在參數中,有且僅有這一個參數 * 控制器:Index.php ~~~ <?php namespace app\index\controller; //導入自定義模型類 use app\index\model\Staff; class Index { public function index(){ //刪除主鍵:1020的記錄 $affected = Staff::destroy(1020); //根據返回值判斷是否刪除成功 echo $affected ? '刪除成功!' : '刪除失敗~~'; } } ~~~ * 2. 刪除多條記錄 >[info] 多個主鍵以數組形式提供 * 控制器:Index.php ~~~ <?php namespace app\index\controller; //導入自定義模型類 use app\index\model\Staff; class Index { public function index(){ //刪除主鍵:1020的記錄 $affected = Staff::destroy([1020,1023,1030]); //根據返回值判斷是否刪除成功 echo $affected ? '刪除成功!' : '刪除失敗~~'; } } ~~~ >[warning] 也可以將多主鍵放在字符串中:'1020,1023,1030'。推薦使用數組方法。 * * * * * 二、 根據條件刪除 >[info] 查看該方法源碼發現,刪除條件應寫在數組中。條件表達式有很多種,我們僅舉一例說明,其它條件表達式是一樣的,請學員自己動手測試~~ **任務:**刪除主鍵id在1020到1030之間的記錄 * 控制器:Index.php ~~~ <?php namespace app\index\controller; //導入自定義模型類 use app\index\model\Staff; class Index { public function index(){ //刪除主鍵id在1020到1030之間的記錄 $affected = Staff::destroy(['id'=>['between',[1028,1180]]]); //根據返回值判斷是否刪除成功 echo $affected ? '成功刪除了'.$affected.'條記錄!' : '刪除失敗~~'; } } ~~~ >[warning] 數組形式的條件表達式,要注意【括號】的正確嵌套! * * * * * 三、用閉包函數設置刪除條件 >[info] 終于等到這個閉包上場了,在ThinkPHP5中,閉包幾乎無處不在。 **任務:** 刪除姓名name中有'阿'的記錄 * 控制器:Index.php ~~~ <?php namespace app\index\controller; //導入自定義模型類 use app\index\model\Staff; class Index { public function index(){ //創建閉包函數 $closure = function ($query){ $query -> where(['name'=>['like','%阿%']]) }; //執行刪除操作:條件由閉包函數提供 $affected = Staff::destroy($closure); //根據返回值判斷是否刪除成功 echo $affected ? '成功刪除了'.$affected.'條記錄!' : '刪除失敗~~'; } } ~~~ * * * * * #### 5. 總結 >[warning] 本章內容比較簡單,執行結果都是可預測的,就不再給出了。 **下面再總結一下條件參數:** 1. 支持主鍵或主鍵列表[數組表示] 2. 支持查詢條件表達式 3. 支持閉包函數
                  <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>

                              哎呀哎呀视频在线观看