Thinkphp6数据修改和删除
2022-11-24 11:10:29
239
{{single.collect_count}}

数据修改

  • 使用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);
回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}