## 更新數據表中的數據
> 數據庫操作使用 Db類封裝方法,請事先在引入 Db類
~~~
use think\facade\Db;
~~~
~~~
Db::name('user')
->where('id', 1)
->update(['user_nickname' => '老貓是家里最懶的貓']);
~~~
如果數據中包含主鍵,可以直接使用:
~~~
Db::name('user')
->update(['user_nickname' => '老貓是家里最懶的貓', 'id' => 1]);
~~~
> update 方法返回影響數據的條數,沒修改任何數據返回 0
如果要更新的數據需要使用SQL函數或者其它字段,可以使用下面的方式:
~~~
Db::name('user')
->where('id', 1)
->update([
'last_login_time' => ['exp', 'unix_timestamp(now())'],
'score' => ['exp', 'score+10'],
]);
~~~
更新某個字段的值:
~~~
Db::name('user')
->where('id', 1)
->setField('user_nickname', '老貓是家里最懶的貓');
~~~
> setField 方法返回影響數據的條數,沒修改任何數據字段返回 0
## 自增或自減一個字段的值
setInc/setDec 如不加第二個參數,默認值為1
~~~
// score 字段加 1
Db::name('user')
->where('id', 1)
->setInc('score');
// score 字段加 5
Db::name('user')
->where('id', 1)
->setInc('score', 5);
// score 字段減 1
Db::name('user')
->where('id', 1)
->setDec('score');
// score 字段減 5
Db::name('user')
->where('id', 1)
->setDec('score', 5);
~~~
## 延遲更新
setInc/setDec支持延時更新,如果需要延時更新則傳入第三個參數
下例中延時10秒,給score字段增加1
~~~
Db::name('user')->where('id', 1)->setInc('score', 1, 10);
~~~
> setInc/setDec 方法返回影響數據的條數
上一篇:[添加數據](http://www.hmoore.net/thinkcmf/doc5_1/957810)
- 序言
- 基礎
- 功能介紹
- 目錄結構
- 正版申明
- 安裝教程
- 狀態參數
- 第三方接口
- 店鋪狀態
- 控制器
- 控制器定義
- 控制器模板賦值
- 控制器模板渲染
- 前臺控制器
- 前臺用戶控制器
- 后臺控制器
- 跳轉,AJAX返回和重定向
- URL生成
- 請求
- 請求信息
- 輸入變量
- 請求類型
- 獲取請求頭信息
- 偽靜態
- 更多
- 系統函數
- user_info 用戶數據信息
- add_payment 創建支付訂單
- 系統預覽
- 前臺預覽
- 后臺預覽
- 數據庫
- 數據庫配置
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- 事務操作
- 更多數據庫操作
- 模型
- 模型定義
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- API
- 站點接口
- 滾動幻燈
- 商品列表
- 商品信息
- 購買商品
- 用戶接口
- 個人信息
- 用戶登錄
- 用戶注冊
- 用戶退出
- 充值接口
- 在線充值
- 支付回調
- 訂單接口
- 訂單列表
- 其他接口
- 規范
- 狀態碼說明
- 版本號
- API路由
- 模板標簽
- 模板常量
- 普通標簽
- 變量輸出
- 系統變量
- 請求參數
- 使用函數
- 使用默認值
- 使用運算符
- 三元運算
- 原樣輸出
- 模板注釋
- 模板目錄
- 包含文件
- 模板布局
- 系統標簽
- 全局標簽
- 源碼標簽
- 服務標簽
- 網站標簽
- 域名標簽
- 任務標簽
- 需求標簽
- 推廣標簽
- 菜單標簽
- 內置標簽
- 循環輸出標簽
- 比較標簽
- 條件判斷
- 標簽嵌套
- 原生PHP
- 定義標簽
- 專題
- 緩存
- Session
- Cookie
- 分頁
- 驗證碼
- 文件上傳
- 第三方擴展
- Swoole
- 擴展插件
- 社會化登錄