laravel查詢構造器提供了方便流暢的接口,用來建立及執(zhí)行數(shù)據(jù)庫查找語法。使用了pdo參數(shù)綁定,使應用程序免于sql注入,因此傳入的參數(shù)不需要額外轉義特殊字符?;旧峡梢詽M足所有的數(shù)據(jù)庫操作,而且在所有支持的數(shù)據(jù)庫系統(tǒng)上都可以執(zhí)行。
1.使用查詢構造器實現(xiàn)增刪改查
在控制器里測試以下代碼:
(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;
//插入多條數(shù)據(jù)
$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; //刪除的行數(shù)
$num=DB::table("vipinfo")->truncate();//刪除整表,不能恢復,謹慎使用
(4)查詢
//get()返回多條數(shù)據(jù)
$student=DB::table("vipinfo")->get();
var_dump($student);
//first()返回1條數(shù)據(jù)
$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條
students){ //每次查2條
var_dump($students);
if(.......) returnfalse; //在滿足某個條件下使用return就不會再往下查了
});
2.使用聚合函數(shù)
//count()統(tǒng)計記錄條數(shù)$nums=DB::table("vipinfo")->count();
echomax=DB::table("vipinfo")->max("vip_fenshu");
echoavg=DB::table("vipinfo")->avg("vip_fenshu");
echosum=DB::table("vipinfo")->sum("vip_fenshu");
echo$sum;