企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 更新数据表中的数据 > 数据库操作使用 Db类封装方法,请事先在引入 Db类 ``` use think\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 方法返回影响数据的条数