前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >05 tp6 的数据添加 助手函数、 save、insert、strict、replace、insertGetId、insertAll《ThinkPHP6 入门到电商实战》

05 tp6 的数据添加 助手函数、 save、insert、strict、replace、insertGetId、insertAll《ThinkPHP6 入门到电商实战》

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

01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》 04 tp6 的查数据《ThinkPHP6 入门到电商实战》 05 tp6 的数据添加《ThinkPHP6 入门到电商实战》

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

一、助手函数

通过Db 的助手函数我们可以省略表前缀指定表进行操作,例如上一节咱们通过 Db::table 对数据表进行操作时需要传入完整的表名,那么在这里咱们若设置了表前缀的情况下使用 Db::name 即可直接传入除前缀外的表名对数据库进行操作。

二、数据新增 save

数据新增在 tp6 中使用save 方法,其中 save 方法可以使用对应条件(主键时)也可以自动判断为更新方法,在此不考虑如何使用 save 进行新增,防止搞混不利于学习,咱们在这里直接使用 save 对其进行数据新增,以下是 save 进行新增的官方手册示例:

代码语言:javascript
复制
$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::name('user')->save($data);

以上代码中创建了一个 data 数据作为新增的数据,随后使用 db::name 传入表 user 指定为操作表,随后使用 save 对其进行数据新增。

在此时我们若想对数据库 student 进行数据增加,name代码就可以写成如下形式:

代码语言:javascript
复制
public function insert(){
   $data =['name' => '西瓜', 'height' => '172'];
   $res=Db::name('student')->save($data);
   dump($res);
}

以上代码在 index 控制器中新增了一个 insert 方法,创建了一个数组,其中有对应的数据,随后使用 save 方法进行数据新增,并且我们使用了 res 变量存储了返回值,随后进行查看,那么此时访问该方法后,结果如下:

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

此时将会返回一个影响条数,再查看数据库内容发现西瓜已新增至数据库之中:

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

三、数据新增 insert

不仅可以使用 save 方法对其进行新增操作,还可以使用 insert 方法对其进行新增:

代码语言:javascript
复制
Db::name('student')->insert($data);

四、strict

此时若在对数据库操作时,新增了其他字段,那么此时将会报错:

代码语言:javascript
复制
public function insert(){
     $data =['name' => '西瓜', 'height' => '172','width'=>'111'];
     $res=Db::name('student')->save($data);
     dump($res);
 }

结果如下:

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

那么此时若不希望抛出异常,并且成功执行可以使用 strict 方法,不存在的字段将会自动抛弃:

代码语言:javascript
复制
public function insert(){
    $data =['name' => '南瓜', 'height' => '172','width'=>'111'];
    $res=Db::name('student')->strict(false)->insert($data);
    dump($res);
}

结果如下:

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

查看数据库已成功添加数据:

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

五、replace

在使用 mysql 数据库时,可以使用 replace 方法,使用replace插入数据若有主键相同情况,将会自动的进行修改替换掉主键对应的内容,首先我们查看数据库内容:

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

接着咱们使用 replace 数据进行新增:

代码语言:javascript
复制
public function insert(){
   $data =['id'=>3,'name' => '瓜苗', 'height' => '172'];
   $res=Db::name('student')->replace()->insert($data);
   dump($res);
}

执行后结果如下:

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

数据库结果如下:

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

六、insertGetId() 返回新增 ID

若想在新增数据时返回新增后数据的 ID 值,那么直接使用 insertGetId() 即可(官方示例):

代码语言:javascript
复制
$userId = Db::name('user')->insertGetId($data);

七、批量新增数据 insertAll

批量新增数据可以使用 insertAll 方法,使用示例如下:

代码语言:javascript
复制
public function insert(){
   $data = [
       ['name' => '芋头', 'height' => '173'],
       ['name' => '萝卜', 'height' => '171'],
       ['name' => '花菜', 'height' => '172'],
       ['name' => '例子', 'height' => '172'],
       ['name' => '酸梨大王', 'height' => '172'],
       ['name' => '一库', 'height' => '171']
   ];
   $res=Db::name('student')->insertAll($data);
   dump($res);
}

以上代码在 index 控制器中新增了一个 insert 方法,创建了一个数组,其中有对应的数据,随后使用 save 方法进行数据新增,并且我们使用了 res 变量存储了返回值,随后进行查看,那么此时访问该方法后,结果如下返回了影响条数:

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

数据库结果如下:

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

同时 replace() 方法也可以使用使用,官方示例如下:

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

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

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

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

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