
05 tp6 的数据添加 助手函数、 save、insert、strict、replace、insertGetId、insertAll《ThinkPHP6 入门到电商实战》
01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》02 控制器《ThinkPHP6 入门到电商实战》03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》04 tp6 的查数据《ThinkPHP6 入门到电商实战》05 tp6 的数据添加《ThinkPHP6 入门到电商实战》若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书
文章目录(更新中…)
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);
更多推荐