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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ThinkPHP的數據更新操作包括更新數據和更新字段方法。 ## 更新數據 更新數據使用`save`方法,例如: ~~~ $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->where('id=5')->save($data); // 根據條件更新記錄 ~~~ 也可以改成對象方式來操作: ~~~ $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $User->name = 'ThinkPHP'; $User->email = 'ThinkPHP@gmail.com'; $User->where('id=5')->save(); // 根據條件更新記錄 ~~~ 數據對象賦值的方式,save方法無需傳入數據,會自動識別。 > 注意:save方法的返回值是**影響的記錄數**,如果返回false則表示更新出錯,因此一定要用恒等來判斷是否更新失敗。 為了保證數據庫的安全,避免出錯更新整個數據表,如果沒有任何更新條件,數據對象本身也不包含主鍵字段的話,save方法不會更新任何數據庫的記錄。 因此下面的代碼不會更改數據庫的任何記錄 ~~~ $User->save($data); ~~~ 除非使用下面的方式: ~~~ $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`方法過濾數據,例如: ~~~ $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方法的參數可以不需要傳入。 ~~~ $User = M("User"); // 實例化User對象 // 要修改的數據對象屬性賦值 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->where('id=5')->data($data)->save(); // 根據條件保存修改的數據 ~~~ 使用create方法的例子: ~~~ $User = M("User"); // 實例化User對象 // 根據表單提交的POST數據創建數據對象 $User->create(); $User->save(); // 根據條件保存修改的數據 ~~~ ## 更新字段 如果只是更新個別字段的值,可以使用`setField`方法。 使用示例: ~~~ $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`方法。 ~~~ $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方法支持延遲更新,用法如下: ~~~ $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>

                              哎呀哎呀视频在线观看