文章目录(更新中…)
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);