laravel7 增删改查

目录

创建控制器

获取单条数据

获取多条数据

更新数据

增加数据 

查询指定的字段值

模糊查询 like

 获取单个值

pluck 单列值的集合

 闭包加条件

连表查询 ,join,左连,右连

删除数据

whereColumn 方法用于比较两个字段的值 是否相等

 自增 & 自减

清空表

调试 sql语句

 事务


创建控制器

php artisan make:controller SqlController

获取单条数据

$a = DB::table('users')->where(['id'=>3])->first();

获取多条数据

$a = DB::table('users')->get();

更新数据

  $bool =  DB::table('users')->where('id', 2)->update(['email' => 'feiru@666.com']);

增加数据 

//调用facker类 自动生成数据 use Faker\Generator as Faker;
$data = DB::table('users')->insert([
            ['email' => $faker->email, 'name' => $faker->name , 'password'=>'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'],
            ['email' => $faker->email, 'name' => $faker->name , 'password'=>'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'],
        ]);

//insertOrIgnore 方法用于忽略重复插入记录到数据库的错误

DB::table('users')->insertOrIgnore(
    [ ['id' => 1, 'email' => 'taylor@example.com'], 
    ['id' => 2, 'email' => 'dayle@example.com'] ]
);

// insertGetId 方法来插入记录并返回 ID 值
$id = DB::table('users')->insertGetId( ['email' => 'john@example.com', 'votes' => 0] );

 

查询指定的字段值

$result = DB::table('users')->where('id', '>' ,2)->get(['id', 'email', 'password']);

$columnInfo = ThemeColumn::where("id", $columnId)->select('id','column_name','english_name','introduce','parent_id')->first()->toArray();

模糊查询 like

$result1 = DB::table('users')->where([
            ['email', 'like' , 'feiru%'],
        ])->get();

 获取单个值

$email = DB::table('users')->where('name', '=', 'Bethany Toy')->value('email');

pluck 单列值的集合

 $pluck = DB::table('users')->where('id', '>', 2)->pluck('email');

 闭包加条件

 $user =   DB::table('users')->where('id', '>', 2)->where(function ($query) {

            $query->where('id' , '<', 6)

                ->orWhere('email_verified_at', '=', '2020-07-19 14:15:24');

        })->get();

连表查询 ,join,左连,右连

//join 
$result = DB::table('users as a')
                  ->join('password_resets as b', 'a.email', '=', 'b.email')
                ->first();
//使用leftJoin 或者 rightJoin 方法。这两个方法与 join 方法用法相同:
$users = DB::table('users')->leftJoin('posts', 'users.id', '=', 'posts.user_id')->get(); $users = DB::table('users')->rightJoin('posts', 'users.id', '=', 'posts.user_id')->get();
         

删除数据

 $del =DB::table('users')->where('id',1)->delete();

whereColumn 方法用于比较两个字段的值 是否相等

$users = DB::table('users') ->whereColumn('first_name', 'last_name') ->get();

 自增 & 自减

DB::table('users')->increment('votes'); 
DB::table('users')->increment('votes', 5); 
DB::table('users')->decrement('votes'); 
DB::table('users')->decrement('votes', 5);

//可以在操作过程中指定要更新的字段
DB::table('users')->increment('votes', 1, ['name' => 'John']);

//原来的基础上加1
ArticleModule::where('id',$id)->update(['visit_times'=>DB::raw('visit_times+1')]);

清空表

DB::table('users')->truncate();ph

调试 sql语句

//使用 dd 或者 dump 方法输出查询结果或者 SQL 语句。 使用 dd 方法可以显示调试信息,然后停止执行请求。 dump 方法同样可以显示调试信息,但是不会停止执行请求:
DB::table('users')->where('votes', '>', 100)->dd(); 
DB::table('users')->where('votes', '>', 100)->dump();

 事务

//处理死锁  自动
//transaction 方法接受一个可选的第二个参数 ,该参数用来表示事务发生死锁时重复执行的次数。一旦定义的次数尝试完毕,就会抛出一个异常:
DB::transaction(function () { 
    DB::table('users')->update(['votes' => 1]); 
}, 5);


//手动
// 开启事务 
DB::beginTransaction();
try{ 
DB::table('users')->update(['votes' => 1]); 
//中间逻辑代码 
DB::commit(); 
}catch (\Exception $e) { 
//接收异常处理并回滚 
    dump($e->getMessage());
    DB::rollBack(); 
}


order排序

 $column = ThemeColumn::where("theme_id", $themeId)->orderBy('sort','asc')->get();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值