zoukankan      html  css  js  c++  java
  • Laravel 数据库实例教程 —— 使用查询构建器对数据库进行增删改查

    原文地址:https://blog.csdn.net/lmy_love_/article/details/72832259

    获取查询构建器很简单,还是要依赖DB门面,我们使用DB门面的table方法,传入表名,即可获取该表的查询构建器:

    $users = DB::table('users');

    这样我们就获取到了$users表的查询构建器,实际上,底层返回的是IlluminateDatabaseQueryBuilder的实例,我们对查询构建器的所有操作都是调用该实例对应类上的方法。下面我们就列举查询构建器的一些常用方法,我们还是沿用上一节创建的$users表做演示说明 。

    1、新增数据

    使用查询构建器的insert方法即可插入一条/多条数据:

    DB::table('users')->insert([
        ['id'=>1,'name'=>'Laravel','email'=>'laravel@test.com','password'=>'123'],
        ['id'=>2,'name'=>'Academy','email'=>'academy@test.com','password'=>'123'],
        ['id'=>3,'name'=>'LaravelAcademy','email'=>'laravel-academy@test.com','password'=>'123']
    ]);
    

    执行成功后即可在数据表$users中插入三条记录。有时候,我们需要插入记录后获取自增ID,可以使用insertGetId方法:

    $insertId = DB::table('users')->insertGetId(
        ['name'=>'Laravel-Academy','email'=>'laravelacademy@test.com','password'=>'456']
    );

    2、更新数据

    更新表记录很简单,使用查询构建器的update方法即可:

    $affected = DB::table('users')->where('name','Laravel-Academy')->update(['password'=>'123']);
    

    该方法返回受影响的函数。

    3、删除数据

    使用delete方法删除表记录,删除方法和更新方法类似,返回被删除的行数:

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

    如果我们是要删除整个数据表数据,则略去where条件,如果是要清空数据表还要将自增ID置为0,可以使用truncate方法:

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

    4、基本查询

    4.1 获取所有表记录

    使用get方法即可获取一张表的所有记录:

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

    打印结果如下:

    查询构建器获取所有结果集

    如果是获取指定列的数据,则需要加上select条件:

    $users = DB::table('users')->select('name','email')->get();
    dd($users);
    

    打印结果如下:

    查询构建器获取指定列的结果集

    4.2 获取单条记录

    获取单条记录需要在查询基础上加上first方法:

    $user = DB::table('users')->where('name','Laravel')->first();
    dd($user);
    

    则对应结果为:

    查询构建器获取单条结果集

    4.3 分组块获取数据

    如果数据库包含多条数据,则一次性获取会极大影响性能,对应地,我们可以调用chunk方法分组块获取数据:

    DB::table('users')->chunk(2,function($users){
        foreach($users as $user){
            // if($user->name=='LaravelAcademy')
                // return false;
            echo $user->name.'<br>';
        }
    });
    

    这里我们指定每次取两条记录。注释部分的意思是我们可以设定查询退出条件,当达到该条件时,查询退出,不再往下执行。

    4.4 获取单列的值

    上述方法获取的查询结果都是对象实例/对象实例数组,有时候,我们只是想简单获取单列的值,遍历数组获取指定列的值太麻烦,可以使用lists方法获取列值数组:

    $users = DB::table('users')->lists('name');
    dd($users);
    

    对应的输出为:

    查询构建器获取单列直

    这样我们就可以免去遍历对象数组的麻烦。

    4.5 原生表达式

    此外,查询构建器还支持原生表达式,我们需要调用DB门面的raw方法来实现:

    $users = DB::table('users')->select(DB::raw('name,email'))->where('id','<',3)->get();
    dd($users);
    

    对应输出为:

    原生表达式

  • 相关阅读:
    原创 128的二进制有原码 反码和补码
    asp.net中进行获取当前时间以及当前时间的前后几个月
    dropdownlist的使用
    CutEditor在线编辑器的使用
    Repeater 嵌套用法
    使用cuteeditor进行视频上传
    电脑知识大全(快捷键大全)
    web.config
    项目总结(大唐)
    上传视频和图片的同时,生成缩略图
  • 原文地址:https://www.cnblogs.com/phpk/p/10939302.html
Copyright © 2011-2022 走看看