Skip to content

更新数据


update()decr()incr()

可以更新某些数据,也可以递减或递增,时间的字段名也可以全局配置

更新数据 update()

  • @param obj 数据对象
  • @param options 设置选项
  • -------@param isAutoTime 是否开启自动时间戳,默认不开启
  • -------@param isShowSql 是否打印最终执行的SQL语句,默认不打印
  • -------@param updateTime 更新时间字段名,默认 update_time
  • -------@param allProtect 全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
Db('user').where('id', 1).update({ name: '张三', age: 18 }, { isAutoTime: true })
Db('user').where('id', 1).update({ name: '张三', age: 18 }, { isAutoTime: true })

最终的SQL语句为:

UPDATE user SET name = '张三', age = 18, update_time = '2023-12-12 00:00:00' WHERE id = 1
UPDATE user SET name = '张三', age = 18, update_time = '2023-12-12 00:00:00' WHERE id = 1

递减 decr()

  • @param field 字段名
  • @param num 步减 默认步减为1
  • @options 设置选项
  • ---------@param isShowSql 是否打印最终执行的SQL语句,默认不打印
  • ---------@param isAutoTime 是否开启自动时间戳,默认不开启
  • ---------@param updateTime 更新时间字段名,默认 update_time
  • ---------@param allProtect 全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
Db('user').where('id', 1).decr('score', 2, { isAutoTime: true })
Db('user').where('id', 1).decr('score', 2, { isAutoTime: true })

最终的SQL语句为:

UPDATE user SET scorce = scorce - 2, update_time = '2023-12-12 00:00:00' WHERE id = 1
UPDATE user SET scorce = scorce - 2, update_time = '2023-12-12 00:00:00' WHERE id = 1

递增 incr()

  • @param field 字段名
  • @param num 步减 默认步增为1
  • @options 设置选项
  • ---------@param isShowSql 是否打印最终执行的SQL语句,默认不打印
  • ---------@param isAutoTime 是否开启自动时间戳,默认不开启
  • ---------@param updateTime 更新时间字段名,默认 update_time
  • ---------@param allProtect 全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
Db('user').where('id', 1).incr('score')
Db('user').where('id', 1).incr('score')

最终的SQL语句为:

UPDATE user SET scorce = scorce + 1 WHERE id = 1
UPDATE user SET scorce = scorce + 1 WHERE id = 1

备案号:冀ICP备20015584号-2