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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 數據更新 ThinkPHP的數據更新操作包括更新數據和更新字段方法。 ### 更新數據 更新數據使用save方法,例如: ```php $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->where('id=5')->save($data); // 根據條件更新記錄 ``` 也可以改成對象方式來操作: ```php $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $User->name = 'ThinkPHP'; $User->email = 'ThinkPHP@gmail.com'; $User->where('id=5')->save(); // 根據條件更新記錄 ``` 數據對象賦值的方式,save方法無需傳入數據,會自動識別。 >注意:save方法的返回值是影響的記錄數,如果返回false則表示更新出錯,因此一定要用恒等來判斷是否更新失敗。 為了保證數據庫的安全,避免出錯更新整個數據表,如果沒有任何更新條件,數據對象本身也不包含主鍵字段的話,save方法不會更新任何數據庫的記錄。 因此下面的代碼不會更改數據庫的任何記錄 ```php $User->save($data); ``` 除非使用下面的方式: ```php $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $data['id'] = 5; $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->save($data); // 根據條件保存修改的數據 ``` 如果id是數據表的主鍵的話,系統自動會把主鍵的值作為更新條件來更新其他字段的值。 數據更新方法支持的連貫操作方法有: |連貫操作 |作用 |支持的參數類型| |----|----|-----| |where |用于查詢或者更新條件的定義 |字符串、數組和對象| |table |用于定義要操作的數據表名稱 |字符串和數組| |alias |用于給當前數據表定義別名 |字符串| |field |用于定義允許更新的字段 |字符串和數組| |order |用于對數據排序 |字符串和數組| |lock |用于數據庫的鎖機制 |布爾值| |relation |用于關聯更新(需要關聯模型支持) |字符串| |scope |用于命名范圍 |字符串、數組| |bind |用于數據綁定操作 |數組| |comment |用于SQL注釋 |字符串| |fetchSql |不執行SQL而只是返回SQL |布爾值| 和add方法一樣,save方法支持使用field方法過濾字段和filter方法過濾數據,例如: ```php $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $data['name'] = 'test'; $data['email'] = '<b>test@gmail.com</b>'; $User->where('id=5')->field('email')->filter('strip_tags')->save($data); // 根據條件保存修改的數據 當使用field('email')的時候,只允許更新email字段的值(采用strip_tags方法過濾),name字段的值將不會被修改。 ``` 還有一種方法是通過create或者data方法創建要更新的數據對象,然后進行保存操作,這樣save方法的參數可以不需要傳入。 ```php $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->where('id=5')->data($data)->save(); // 根據條件保存修改的數據 ``` 使用create方法的例子: ```php $User = M("User"); // 實例化User對象 // 根據表單提交的POST數據創建數據對象 $User->create(); $User->save(); // 根據條件保存修改的數據 ``` ### 更新字段 如果只是更新個別字段的值,可以使用setField方法。 使用示例: ```php $User = M("User"); // 實例化User對象 // 更改用戶的name值 $User-> where('id=5')->setField('name','ThinkPHP'); setField方法支持同時更新多個字段,只需要傳入數組即可,例如: $User = M("User"); // 實例化User對象 // 更改用戶的name和email的值 $data = array('name'=>'ThinkPHP','email'=>'ThinkPHP@gmail.com'); $User-> where('id=5')->setField($data); ``` 而對于統計字段(通常指的是數字類型)的更新,系統還提供了setInc和setDec方法。 ```php $User = M("User"); // 實例化User對象 $User->where('id=5')->setInc('score',3); // 用戶的積分加3 $User->where('id=5')->setInc('score'); // 用戶的積分加1 $User->where('id=5')->setDec('score',5); // 用戶的積分減5 $User->where('id=5')->setDec('score'); // 用戶的積分減1 ``` 3.2.3版本開始,setInc和setDec方法支持延遲更新,用法如下: ```php $Article = M("Article"); // 實例化Article對象 $Article->where('id=5')->setInc('view',1); // 文章閱讀數加1 $Article->where('id=5')->setInc('view',1,60); // 文章閱讀數加1,并且延遲60秒更新(寫入) ```
                  <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>

                              哎呀哎呀视频在线观看