[更新数据]

[更新数据表中的数据]

数据库操作使用 Db类封装方法,请事先在引入 Db类

  1. use think\facade\Db;
  1. Db::name('user')
  2. ->where('id', 1)
  3. ->update(['user_nickname' => '老猫是家里最懒的猫']);

如果数据中包含主键,可以直接使用:

  1. Db::name('user')
  2. ->update(['user_nickname' => '老猫是家里最懒的猫', 'id' => 1]);

update 方法返回影响数据的条数,没修改任何数据返回0

如果要更新的数据需要使用SQL函数或者其它字段,可以使用下面的方式:

  1. Db::name('user')
  2. ->where('id', 1)
  3. ->update([
  4. 'last_login_time' => ['exp', 'unix_timestamp(now())'],
  5. 'score' => ['exp', 'score+10'],
  6. ]);

[自增或自减一个字段的值]

inc/dec 如不加第二个参数,默认值为1

  1. // score 字段加 1
  2. Db::name('user')
  3. ->where('id', 1)
  4. ->inc('score')
  5. ->update();
  6. // score 字段加 5
  7. Db::name('user')
  8. ->where('id', 1)
  9. ->inc('score', 5)
  10. ->update();;
  11. // score 字段减 1
  12. Db::name('user')
  13. ->where('id', 1)
  14. ->dec('score')
  15. ->update();;
  16. // score 字段减 5
  17. Db::name('user')
  18. ->where('id', 1)
  19. ->dec('score', 5)
  20. ->update();