ThinkPHP5开发连载二十六之数据库查询构造器更新数据

​上一篇文章讲解“数据库查询构造器-添加数据”,本篇文章讲解“数据库查询构造器-更新数据”。

1. 更新数据

1)update——更新数据

新建Index控制器,并新建updata方法

预览:

注意:

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

2)使用data方法配合update方法

修改Index控制器中的updata方法:

预览——更新前:

预览——更新后:

注意:

1. 如果update方法和data方法同时传入更新数据,则会进行合并。

3)更新数据中包含主键

如果数据中包含主键,则可省略where方法。

修改Index控制器中的updata方法:

预览——更新前:

预览——更新后:

4)使用SQL函数

修改Index控制器下的updata方法,使用SQL函数:

预览——更新前:

预览——更新后:

5)raw方法更新数据

V5.1.7+版本以后,支持使用raw方法进行数据更新,适合在数组更新的情况。

修改Index控制器下的updata方法:

预览——更新前:

预览——更新后:

2. 更新字段值

1)setField——更新字段

在Index控制器中,新建upvalue方法:

预览——更新前:

预览——更新后:

注意:

1. setField方法返回影响数据的条数,没修改任何数据字段返回0。

2)setInc / setDec——自增或自减

setInc/setDec方法自增或自减一个字段的值(如不加第二个参数,默认步长为1)。

修改Index控制器的upvalue方法,使用自增自减方法:

预览——更新前:

预览——更新后:

setInc/setDec支持延时更新,如果需要延时更新则传入第三个参数

修改Index控制器中upvalue方法:

预览——更新前:

预览——访问两次upvalue方法后:

注意:

1. setInc/setDec方法返回影响数据的条数,如果使用了延迟更新的话,可能会返回true。

2. ThinkPHP5.1.7版本setInc与setDec延迟有问题,第一次执行数据不变,第二次执行会将第一次执行的结果加上。

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技术文章

下一篇讲解“查询构造器-删除数据”

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180825A0GWUL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券