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

                ## 單條記錄更新:save( )方法 #### 1. 功能:更新表中滿足條件的單條記錄。 >[info] save方法每次僅能更新一條記錄,所以適用于根據主鍵更新數據。 * * * * * #### 2. 參數與返回值 * 參數: | 序號 | 參數 | 說明 | | :---: | --- | --- | | 1 | $array / 一維數組 | 帶主鍵且鍵名與表中字段名對應的一維數組 | * 返回值: | 序號 | 參數 | 說明 | | :---: | --- | --- | | 1 | $integer / 整數 | 更新成功,返回受影響記錄數量 | | 2 | false | 更新失敗返回布爾值:假 | * * * * * #### 3. 實例演示 >[info] 根據主鍵更新有二種情形: >1. 主鍵來自于表中記錄; >2. 主鍵由用戶自己設定; 一、更新tp5_staff表中id等于1011的記錄,將姓名name更新為:朱老師,工資salary更新為5000; >[danger] 第一種情況:主鍵來自表中記錄 * 步驟: 1. 從表中取出id=1011的記錄,來初始化模型對象,得到數據對象; 2. 對數據對象中id=1011的數據,更新以name和salary為鍵名的數組元素; 3. 將更新后的原始數據,寫到表中對應記錄中,完成更新操作。 * 關于模型Staff.php的創建,與前面是完全一樣的,此處就不再贅述啦~~ * 我們先查看一下更新前的數據: ![](https://box.kancloud.cn/86a064b8243f95bc3dbd7c3d7c2fa4b3_590x314.png) * 控制器:Index.php ~~~ <?php namespace app\index\controller; //導入自定義模型類 use app\index\model\Staff; class Index { public function index(){ //1.從表中取出id=1011的數據 $data = Staff::get(1011); //2.查看從表中取出的數據 echo '1. 查看從表中取出的數據:<br />'; dump($data->getData()); //3.修改數據對象中與表字段對應的原始數據:$data屬性 $data -> setAttr('name','朱老師'); $data -> setAttr('salary',5000); //4.更新表中記錄 $affected = $data -> allowField(true) -> save(); //5.查看更新后的數據 echo '2. 查看更新后的數據:<br />'; dump($data -> getData()); //6.判斷是否成功,并給出反饋信息 if (!empty($affected)) { echo '更新成功!'; }else{ echo '更新失敗~~'; } } } ~~~ >[warning] allowField( ) 限制允許更新定段列表,true:過濾非表字段。也可直接寫字段列表,如'name,age,salary'等,即僅接受這3個字段更新,其它字段忽略。 * 查看運行結果: ~~~ 1. 查看從表中取出的數據: array(7) { ["id"] => int(1011) ["name"] => string(9) "張老師" ["sex"] => int(1) ["age"] => int(49) ["salary"] => float(2800) ["dept"] => int(1) ["hiredate"] => string(10) "2005-10-20" } 2. 查看更新后的數據: array(7) { ["id"] => int(1011) ["name"] => string(9) "朱老師" ["sex"] => int(1) ["age"] => int(49) ["salary"] => int(5000) ["dept"] => int(1) ["hiredate"] => string(10) "2005-10-20" } 更新成功! ~~~ >[warning] 為了演示底層實現細節,上面的代碼寫得比較冗長。現在我們來簡化代碼: * 簡化后的控制器代碼: ~~~ <?php namespace app\index\controller; //導入自定義模型類 use app\index\model\Staff; class Index { public function index(){ //1.從表中取出id=1011的數據 $data = Staff::get(1011); //2.更新數據對象:魔術方法實現 $data -> name = '朱老師'; $data -> salary = 5000; //3.更新表中數據,并反饋執行結果 echo ($data -> allowField(true) -> save()) ? '更新成功!' : '更新失敗~~'; } } ~~~ * 簡化后的代碼運行結果: ~~~ 更新成功! ~~~ * 再看查詢表中數據:更新成功! ![](https://box.kancloud.cn/0e0e64eb2b110289eb84e30b5296b560_592x300.png) * * * * * >[danger] 第二種情況:更新主鍵由用戶自己定義 **任務:** 更新tp5_staff表中id =1007的記錄,將姓名name更新為:'馬金蓮'。 * 更新前id =1007的數據: ![](https://box.kancloud.cn/a9eda7f788f8bd62c4b9471d72cfe896_591x291.png) * 控制器:Index.php ~~~ <?php namespace app\index\controller; //導入自定義模型類 use app\index\model\Staff; class Index { public function index(){ //設置更新條件 $where = ['id'=> 1007]; //設置更新數據 $data = []; $data['name'] = '馬金蓮'; //執行更新操作 $affected = (new Staff) -> allowField(true) -> save($data,$where); //反饋執行結果 echo $affected ? '更新成功!' : '更新失敗~~'; } } ~~~ >[warning] 注意:save方法并不能自動識別更新數據對象中的更新主鍵id,必須單獨設置更新條件做為第二個參數,這與saveAll方法不同,一定要注意。 * 更新完成后,表中數據如下: ![](https://box.kancloud.cn/8de13bf96518f799f04bc942a233f3fc_589x308.png)
                  <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>

                              哎呀哎呀视频在线观看