Thinkphp6数据修改和删除

数据修改

  • 使用update()方法来修改数据,修改成功返回影响行数,没有修改则返回0
$data = [
    'email' =>  'zqx@qq.com'
];
return Db::name('user')->where('id',12)->update($data);
  • 如果修改数据包含了主键信息,比如id,那么可以省略掉where条件
$data = [
    'id'    =>  '11',
    'email' =>  'tl@qq.com'
];
return Db::name('user')->update($data);
  • 如果想让一些字段修改时执行sql函数操作,可以使用exp()方法实现
Db::name('user')
    ->where('id',1)
    ->exp('name','UPPER(name)')
    ->update();
  • 实际生成的SQL语句
UPDATE 'think_user' SET 'name' = UPPER(name)  WHERE 'id' = 1
  • 如果要自增/自减某个字段,可以使用inc/dec方法,并支持自定义步长
//自增
return Db::name('user')->where('id',1)->inc('price')->update();
//自减
return Db::name('user')->where('id',1)->dec('price')->update();
  • 使用::raw()方法可以实现数据修改、sql函数的操作和自增自减
Db::name('user')->where('id',13)
    ->update([
        //sql函数操作
        'email'         =>  Db::raw('upper(email)'),
        //自增
        'price'         =>  Db::raw('price + 1')
    ]);
  • 使用save()方法进行修改数据,必须制定主键才能实现修改功能
return Db::name('user')->where('id',14)->save([
    'username'      =>  '张三',
    'email'         =>  'zs@qq.com'
]);

数据删除

  • 根据主键删除单条数据,删除成功返回影响行数,否则为0
Db::name('user')->delete(14);
  • 根据主键删除多条数据
Db::name('user')->delete([12,13,14]);
  • 正常情况下,通过where()方法删除
Db::name('user')->where('id',14)->delete();
  • 通过true删除所有数据
Db::name('user')->delete(true);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lcxuan27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值