文章目录
- 增
- 改
- 删
- 事务控制
检测环境
laravel 的环境配置
安装两个插件
增
编写SQL插入语句
<?php
namespace App\Http\Controllers;use Illuminate\Support\Facades\DB;// 命名空间
class Demo extends Controller{public function add(){// 插入一行数据DB::table('user')->insert(['name'=>'yyy','age'=>11]);// 批量插入数据DB::table('user')->insert([['name'=>'烟雨3','age'=>22],['name'=>'烟雨2','age'=>20]]);}
}
建库建表----建工程 — 改 .env 环境 ---- 路由 – 控制器
改
public function update(){DB::table('user')->update(['age'=>10]);// 没有 where 限定 ,就会把所有的 age 改成 10}
Route::get('d2',[Demo::class,'update']);
没有where限定,导致所有人的age 都被更新为 10
where 限定
public function update(){// DB::table('user')// ->update(['age'=>10]);// 没有 where 限定 ,就会把所有的 age 改成 10// where 限定 name = yyy 把名字 改为 mmmDB::table('user')->where('name','=','yyy')->update(['name'=> 'mmm']);}
Route::get('d2',[Demo::class,'update']);
更新 或者 插入
第一个参数存在,则作为 where 限定,去更新更新第二个参数,执行的是更新
第一个参数不存在,则把第一个第二个参数 插入到 表中,执行的是 插入操作
public function update(){// DB::table('user')// ->update(['age'=>10]);// 没有 where 限定 ,就会把所有的 age 改成 10// where 限定 name = yyy 把名字 改为 mmm// DB::table('user')// ->where('name','=','yyy')// ->update(['name'=> 'mmm']);DB::table('user')->updateOrInsert(// 参数1 ['name'=>'mmm']// 参数2 ['age'=>2]['name'=>'mmm'],['age'=>2]);}
删
public function delete(){DB::table('user')->where('age','>',10)->delete();}
Route::get('d3',[Demo::class,'delete']);
delete 删除前,id 最大 = 7,重新插入数据,id 从 8 开始
public function delete(){// DB::table('user')// ->where('age','>',10)// ->delete();DB::table('user')->truncate();// 针对整个表操作,无法像 delete 一样,限定范围 删除// 删除数据,保留表的结构,重置 id ,重新插入数据。id 从 1 开始递增}
事务控制
public function add(){DB::transaction(// transaction( 放置一个匿名函数(把多个数据库操作放在改匿名函数的函数体之内) )function () {// 插入一行数据DB::table('user')->insert(['name' => 'yyy', 'age' => 11]);// 批量插入数据DB::table('user')->insert([['name' => '烟雨3', 'age' => 22],['name' => '烟雨2', 'age' => 20]]);});}