• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel框架查询构造器常见用法总结

    本文实例讲述了Laravel框架查询构造器常见用法。分享给大家供大家参考,具体如下:

    查询构造器也是我们使用laravel框架的一项必备技能,上一篇文章我们讲到了如何使用原生增删改查,这一篇我们就来讲查询构造器的增删改查(以下知识点若有不全面的地方,还请多多谅解)

    查询构造器简介:

    Laravel查询构造器提供方便流畅的接口,用来建立及执行数据库查找语法
    使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不需要额外转移特殊字符
    基本可以满足所有数据库操作,而且在所有支持的数据库系统上都可以执行

    NO.1查询构造器新增数据

    1.最基本的新增

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur1()
     {
     $bool = DB::table('student')//table指的是一个数据表,而括号里的('student')则指的是一个名为student的数据表
     ->insert(
      ['name' => 'Rarin','age' =>16]
     );
     echo "pre>";
     print_r($bool);
     echo "/pre>";
     }
    }
    
    

    ok,然后他会返回一个数字“1”,返回数字“1”则证明他已经新建了一条数据。

    2.获取一个新增的数据id

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur1()
     {
     $bool = DB::table('student')
     ->insertGetId(
      ['name'=>'Shen' , 'age'=>'16']
     );
     echo "pre>";
     print_r($bool);
     echo "/pre>";
     }
    }
    
    

    然后他会弹出相对应的id值,我的id值是2,所以他会显示一个数字“2”。

    3.新增多条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur1()
     {
     $bool = DB::table('student')
     ->insert([
      ['name'=>'Chen','age'=>18],
      ['name'=>'He','age'=>16]
     ]);
     var_dump($bool);
     }
    }
    
    

    为了和上面的区分一下,我把print_r换成了var_dump,他会输出成一个true,证明新增成功了。

    NO.2查询构造器修改数据

    1.修改一条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur2()
     {
     $upt = DB::table('student')
     ->where('id',3)
     ->update(['age'=>20]);
     echo "pre>";
     print_r($upt);
     echo "/pre>";
     }
    }
    
    

    那么,他会输出一个数字1,代表的是影响的行数是一行。

    2.自增某条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur2()
     {
     $upt = DB::table('student')
     ->increment('age');
     echo "pre>";
     print_r($upt);
     echo "/pre>";
     }
    }
    
    

    结果,他会输出为4,因为我一共有四行数据,所以他影响到了四行数据,自增了1(在这里要说明一下,没有给他赋值的时候他默认值为1)

    那么我们又要如何给他附上值呢?代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur2()
     {
     $upt = DB::table('student')
     ->increment('age',2);//在这里,我们指定他自增的值为2
     echo "pre>";
     print_r($upt);
     echo "/pre>";
     }
    }
    
    

    那么,他输出的值照样是4,证明影响了四个行数,然后去查看的时候,可以发现每个数据的年龄都大了2岁

    3.自减某条数据

    自减的默认值和设置值的操作步骤与自增一致,唯一不同的就是关键字从increment转换成了decrement。
    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur2()
     {
     $upt = DB::table('student')
     ->decrement('age');
     echo "pre>";
     print_r($upt);
     echo "/pre>";
     }
    }
    
    

    然后他会返回一个受影响行数的值,我这里有四个行数受到了影响,所以返回4

    4.根据某个条件进行自增(自减同理)

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur2()
     {
     $upt = DB::table('student')
     ->where('id',1)
     ->increment('age');
     echo "pre>";
     print_r($upt);
     echo "/pre>";
     }
    }
    
    

    因为受影响的数据只有id是为1的数据,所以他会返回数字1,证明受影响的行数只有一行,自减同理,不过多介绍

    自减的时候修改其他字段(自增同理)

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur2()
     {
     $upt = DB::table('student')
     ->where('id',3)
     ->decrement('age',3,['name' => 'ChenChai']);
     echo "pre>";
     print_r($upt);
     echo "/pre>";
     }
    }
    
    

    他会返回一个受影响的行数值

    NO.3查询构造器删除数据

    1.删除某条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur3()
     {
     $dlt = DB::table('student')
     ->where('id',4)//当id为4的时候
     ->delete();
     echo "pre>";
     print_r($dlt);
     echo "/pre>";
     }
    }
    
    

    他会返回一个数字1,表示删除的数据共有1行。

    2.根据某个值删除多条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur3()
     {
     $dlt = DB::table('student')
     ->where('id','>=',2)//当id大于等于2的时候
     ->delete();
     echo "pre>";
     print_r($dlt);
     echo "/pre>";
     }
    }
    
    

    他会输出相对应被删除几条数据的数字,我这里删除了2条数据,所以他返回一个2

    NO.4查询构造器查询数据

    1.get方式获取所有的数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->get();
     dd($slt);
     }
    }
    
    

    2.first方式

    获取第一条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->first();
     dd($slt);
     }
    }
    
    

    显示的结果如下:

    重新排序

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->orderBy('id','desc')
     ->first();
     dd($slt);
     }
    }
    
    

    结果如下:

    数据表如下:

    3.where方式

    插入一条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->where('id','>',1)//当id大于1的时候
     ->get();
     dd($slt);
     }
    }
    
    

    结果如下:

    插入多条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->whereRaw('id > ? and age = ?',[1,19])//当id大于1的时候,并且age等于191的时候
     ->get();
     dd($slt);
     }
    }
    
    

    4.pluck方式

    他只返回某个值,以数组的形式

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->pluck('name');
     dd($slt);
     }
    }
    
    

    结果如下:

    5.lists方式

    作用和pluck方式差不多,但唯一不同的就是,他可以指定返回的下标是多少

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->lists('name','id');//指定返回的下标是和name相对应的id
     dd($slt);
     }
    }
    
    

    6.select方式

    你可以用它指定输出相对应的值,而不会像get方式一样把所有无关紧要的值也输出出来

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     $slt = DB::table('student')
     ->select('name','id','age')
     ->get();
     dd($slt);
     }
    }
    
    

    结果不做多介绍,只要简单的理解为指定查找即可

    7.chunk方式

    这个一般是用在数据过多的时候,为了流畅,设定每次输出多少条数据

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     DB::table('student')
     ->chunk(1,function($slt){
      echo "pre>";
      print_r($slt);
      echo "/pre>";
     });
     }
    }
    
    

    如果你只需要查询一次,只需要添加一个return false即可。

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur4()
     {
     DB::table('student')
     ->chunk(1,function($slt){
      echo "pre>";
      print_r($slt);
      echo "/pre>";
      return false;
     });
     }
    }
    
    

    但是一般这种情况都是你满足了某个条件后就不再执行,所以我们往匿名函数里增加一个if判断语句来判断再return即可

    NO.5查询构造器聚合函数

    1.count函数

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur5()
     {
     $num = DB::table('student')
     ->count();
     print_r($num);
     }
    }
    
    

    他这个函数是输出数据有几条记录,我这里数据有2条记录,所以他会输出一个2

    2.max函数

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur5()
     {
     $num = DB::table('student')
     ->max('age');
     print_r($num);
     }
    }
    
    

    返回数据里某个数据的最大值

    3.min函数

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur5()
     {
     $num = DB::table('student')
     ->min('age');
     print_r($num);
     }
    }
    
    

    与max同理

    4.avg函数

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur5()
     {
     $num = DB::table('student')
     ->avg('age');
     print_r($num);
     }
    }
    
    

    返回年龄的平均值

    5.sum函数

    代码如下:

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    class SController extends Controller
    {
     public function qur5()
     {
     $num = DB::table('student')
     ->sum('age');
     print_r($num);
     }
    }
    
    

    返回数据里某个数据的总和

    更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • laravel技巧之查询构造器Query Builder叠加链式调用的方法
    • 使用Laravel中的查询构造器实现增删改查功能
    • 解决laravel查询构造器中的别名问题
    • Laravel框架查询构造器简单示例
    • Laravel框架查询构造器 CURD操作示例
    • Laravel 使用查询构造器配合原生sql语句查询的例子
    • Laravel5中实现模糊匹配加多条件查询功能的方法
    • 在Laravel5.6中使用Swoole的协程数据库查询
    • laravel实现查询最后执行的一条sql语句的方法
    • Laravel Eloquent ORM 实现查询表中指定的字段
    上一篇:Laravel框架DB facade数据库操作详解
    下一篇:PHP使用JPGRAPH制作圆柱图的方法详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Laravel框架查询构造器常见用法总结 Laravel,框架,查询,构造,器,