(laravel查询构造器)2020-04-08

2020-04-08  本文已影响0人  浪子游剑

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

1.使用查询构造器实现增删改查

在控制器里测试以下代码:

(1)新增

$bool=DB::table("vipinfo")->insert(['vip_ID'=>6,'vip_name'=>'zls','vip_type'=>"出行",'vip_fenshu'=>800]);

echo$bool; //返回bool值

//如果想得到新增的id,则使用insertGetId方法

$id=DB::table("vipinfo")->insertGetId(['vip_ID'=>5,'vip_name'=>'wyp','vip_type'=>"出行",'vip_fenshu'=>800]);

echo$id;

//插入多条数据

$bool=DB::table("vipinfo")->insert([

['vip_ID'=>5,'vip_name'=>'wyp','vip_type'=>"出行",'vip_fenshu'=>800],

['vip_ID'=>6,'vip_name'=>'zls','vip_type'=>"出行",'vip_fenshu'=>800],

]);

echo$bool; //返回bool值

(2)修改

$bool=DB::table("vipinfo")->where('vip_ID',6)->update(['vip_fenshu'=>500]);

echo$bool;

//自增

$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu");//自增1

$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu",3);//自增3

echo$bool;

//自减

$bool=DB::table("vipinfo")->where('vip_ID',6)->decrement("vip_fenshu");//自1

$bool=DB::table("vipinfo")->where('vip_ID',6)->decrement("vip_fenshu",3);//自增3

echo$bool;

//自增时再修改其他字段

$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu",3,['vip_name'=>'dbdibi']);//自增3

(3)删除

$num=DB::table("vipinfo")->where('vip_ID',6)->delete();//删除1条

$num=DB::table("vipinfo")->where('vip_ID','>',4)->delete();//删除多条

echo$num; //删除的行数

$num=DB::table("vipinfo")->truncate();//删除整表,不能恢复,谨慎使用

(4)查询

//get()返回多条数据

$student=DB::table("vipinfo")->get();

var_dump($student);

//first()返回1条数据

$student=DB::table("vipinfo")->first(); //结果集第一条记录

$student=DB::table("vipinfo")->orderBy('vip_ID','desc')->first();//按vip_ID倒序排序

var_dump($student);

//where()条件查询

$student=DB::table("vipinfo")->where('vip_ID','>=',2)->get(); //一个条件

$student=DB::table("vipinfo")->whereRaw('vip_ID> ? and vip_fenshu >= ?',[2,300])->get(); //多个条件

dd($student);

//pluck()指定字段,后面不加get

$student=DB::table("vipinfo")->pluck('vip_name');

dd($student);

//lists()指定字段,可以指定某个字段作为下标

$student=DB::table("vipinfo")->lists('vip_name','vip_ID'); //指定vip_ID为下标

dd($student);

$student=DB::table("vipinfo")->lists('vip_name'); //不指定下标,默认下标从0开始

//select()指定某个字段

$student=DB::table("vipinfo")->select('vip_name','vip_ID')->get();

dd($student);

//chunk()每次查n条

student=DB::table("vipinfo")->chunk(2,function(students){ //每次查2条

var_dump($students);

if(.......) returnfalse;  //在满足某个条件下使用return就不会再往下查了

});

2.使用聚合函数

//count()统计记录条数$nums=DB::table("vipinfo")->count();

echonums;//max()某个字段的最大值,同理min是最小值max=DB::table("vipinfo")->max("vip_fenshu");

echomax;//avg()某个字段的平均值avg=DB::table("vipinfo")->avg("vip_fenshu");

echoavg;//sum()某个字段的和sum=DB::table("vipinfo")->sum("vip_fenshu");

echo$sum;

上一篇下一篇

猜你喜欢

热点阅读