前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》

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

作者头像
1_bit
发布2022-09-20 14:57:25
1.9K0
发布2022-09-20 14:57:25
举报
文章被收录于专栏:我的知识小屋
文章目录(更新中…)

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 方法的官方手册示例:

代码语言:javascript
复制
Db::name('user')
    ->where('id', 1)
    ->update(['name' => 'thinkphp']);

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

代码语言:javascript
复制
public function update(){
   $res=Db::name('student')
   ->where('id', 1)
   ->update(['height' => 169]);
   dump($res);
}

访问该方法后结果为更新数如下:

在这里插入图片描述
在这里插入图片描述

最后查看数据库内容已更新:

在这里插入图片描述
在这里插入图片描述

更新还可以直接传入一个数组:

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

结果如下:

在这里插入图片描述
在这里插入图片描述

官方还给出了另外一种示例:

代码语言:javascript
复制
Db::name('user')
->where('id', 1)
->data(['name' => 'thinkphp'])
->update();

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

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

代码语言:javascript
复制
Db::name('user')
    ->where('id',1)
    ->exp('name','UPPER(name)')
    ->update();

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

代码语言:javascript
复制
Db::name('user')
    ->where('id', 1)
    ->update([
        'name'		=>	Db::raw('UPPER(name)'),
        'score'		=>	Db::raw('score-3'),
        'read_time'	=>	Db::raw('read_time+1')
    ]);

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

三、自增自减

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

代码语言:javascript
复制
// 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();

四、数据删除

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

代码语言:javascript
复制
Db::name('user')->delete(51);

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

代码语言:javascript
复制
Db::name('user')->where('id', 47)->delete();

多条记录删除代码如下:

代码语言:javascript
复制
Db::name('user')->delete([48,49,50]);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数据的更新
  • 二、数据库函数执行 exp 及 raw 方法更新
  • 三、自增自减
  • 四、数据删除
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档