文章目录(更新中…)

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

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

一、助手函数

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

二、数据新增 save

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

$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::name('user')->save($data);

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

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

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

以上代码在 index 控制器中新增了一个 insert 方法,创建了一个数组,其中有对应的数据,随后使用 save 方法进行数据新增,并且我们使用了 res 变量存储了返回值,随后进行查看,那么此时访问该方法后,结果如下:
在这里插入图片描述
此时将会返回一个影响条数,再查看数据库内容发现西瓜已新增至数据库之中:
在这里插入图片描述

三、数据新增 insert

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

Db::name('student')->insert($data);

四、strict

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

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

结果如下:
在这里插入图片描述
那么此时若不希望抛出异常,并且成功执行可以使用 strict 方法,不存在的字段将会自动抛弃:

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

结果如下:
在这里插入图片描述
查看数据库已成功添加数据:
在这里插入图片描述

五、replace

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

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

执行后结果如下:
在这里插入图片描述
数据库结果如下:

在这里插入图片描述

六、insertGetId() 返回新增 ID

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

$userId = Db::name('user')->insertGetId($data);

七、批量新增数据 insertAll

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

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() 方法也可以使用使用,官方示例如下:

Db::name('user')->replace()->insertAll($data);
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐