更新数据
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 = 1UPDATE 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 = 1UPDATE 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 = 1UPDATE user SET scorce = scorce + 1 WHERE id = 1