06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》

举报
1_bit 发表于 2022/08/06 23:10:31 2022/08/06
【摘要】 文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkP...

文章目录(更新中…)

01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》
02 控制器《ThinkPHP6 入门到电商实战》
03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》
04 tp6 的查数据《ThinkPHP6 入门到电商实战》
05 tp6 的数据添加《ThinkPHP6 入门到电商实战》
06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》
07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》
08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。

一、数据的更新

tp6 中更新可以使用 save 方法进行更新也可以使用 update 进行更新,在这里不对save 进行讲解防止同学们对 save 的操作产生混乱,在这里主要介绍 update 方法的更新。

以下是 update 方法的官方手册示例:

Db::name('user')
    ->where('id', 1)
    ->update(['name' => 'thinkphp']);

从示例中我们可以看到,使用 name 指定了要操作的表为 user ,where 用作指定条件,更新的数据是 id 为 1 的这一条,update 所传入的数据为更新的数据值;那么此时若我们需要更新 student 表里面的数据代码就可以写成:

public function update(){
   $res=Db::name('student')
   ->where('id', 1)
   ->update(['height' => 169]);
   dump($res);
}

访问该方法后结果为更新数如下:
在这里插入图片描述
最后查看数据库内容已更新:
在这里插入图片描述
更新还可以直接传入一个数组:

public function update(){
   $data=['height' => 173];
   $res=Db::name('student')
   ->where('id', 1)
   ->update($data);
   dump($res);
}

结果如下:
在这里插入图片描述
官方还给出了另外一种示例:

Db::name('user')
->where('id', 1)
->data(['name' => 'thinkphp'])
->update();

二、数据库函数执行 exp 及 raw 方法更新

在更新数据时还可以通过 exp 执行sql数据库函数,以下是官方所给出的示例使其内容转换为大写:

Db::name('user')
    ->where('id',1)
    ->exp('name','UPPER(name)')
    ->update();

也可以通过 raw 方法对数据进行更新:

Db::name('user')
    ->where('id', 1)
    ->update([
        'name'		=>	Db::raw('UPPER(name)'),
        'score'		=>	Db::raw('score-3'),
        'read_time'	=>	Db::raw('read_time+1')
    ]);

例如给与一个数值减值某个数字加值等。

三、自增自减

自增自减官方手册也提供了对应的方法:

// score 字段加 5
Db::table('think_user')
    ->where('id', 1)
    ->inc('score', 5)
    ->update();
// score 字段减 5
Db::table('think_user')
    ->where('id', 1)
    ->dec('score', 5)
    ->update();

四、数据删除

数据删除在日常中使用很谨慎,一般是通过更改状态值来设置“删除”状态,下面给与官方示例说明:

Db::name('user')->delete(51);

以上代码将会返回影响行数,不成功则为0。也可以写成如下形式:

Db::name('user')->where('id', 47)->delete();

多条记录删除代码如下:

Db::name('user')->delete([48,49,50]);

文章来源: i1bit.blog.csdn.net,作者:1_bit,版权归原作者所有,如需转载,请联系作者。

原文链接:i1bit.blog.csdn.net/article/details/126183712

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。