Laravel 数据库操作基础知识总结

一、原始DB类操作

        $muse =DB::select(
        'select MuId,MuName,MuPwd,MuSex,MuPhone from muser where MuName like ? or MuName like ?',
        ['%'.'管理'.'%','admin']);
        dd($muse);//json格式化
        //var_dump($muse);//普通显示
        //DB façade 的以下操作
        //DB::select  查询  返回的是 数组对象
        //DB::insert  插入  返回的是 bool类型
        //DB::update  更新  返回的是 受影响的行数
        //DB::delete  删除  返回的是 受影响的行数

二、DB查询构造器

**//DB查询构造器的操作 一 ---增加数据**
public function muser2(){
        $mytime = date("Y-m-d H:i:s");

        //单行插入 返回bool 类型
        /*$sysrolebool=DB::table('sys_role')->insert(
            ['SRName'=>'游客2','Adddate'=>$mytime,'Adduser'=>1]
        );*/
        //多行插入 返回bool 类型
        $sysrolebool=DB::table('sys_role')->insert([
            ['SRName'=>'游客3','Adddate'=>$mytime,'Adduser'=>1],
            ['SRName'=>'游客4','Adddate'=>$mytime,'Adduser'=>1],
        ]);
        var_dump($sysrolebool);//普通显示
        //return 0;
    }
**//DB查询构造器的操作 二---更新数据**
    public function muser3(){
        $mytime = date("Y-m-d H:i:s");

        //update 返回行数
        /*$num =DB::table('sys_role')
            ->where('SRId',9)
            ->update(['SRDescribe'=>'这是游客','Modifydate'=>$mytime]);*/

        //increment自增 默认1,decrement自减 默认1,返回受影响行数
        $num = DB::table('sys_role')->where('SRId',10)
        ->increment('Adduser',1,['SRName'=>'未认证用户2','Modifydate'=>$mytime]);
        //$num = DB::table('sys_role')->increment('Adduser',3);
        //$num = DB::table('sys_role')->decrement('Adduser');

        var_dump($num);
        //return $num;
    }
**//DB查询构造器的操作 三---删除数据**
    public function muser4(){
        $num=DB::table('sys_role')->where('SRId','>=',10)
            ->delete();
        var_dump($num);
    }
**//DB查询构造器的操作 四---查询数据**
    public function muser5(){

        //get 返回所有记录
        //$role=DB::table('sys_role')->get();

        //first返回结果集第一条记录
        //$role=DB::table('sys_role')->first();
        /*$role=DB::table('sys_role')
            ->orderBy('SRId','desc')
            ->first();*/
        //->where单条件查询  ->whereRaw多条件查询
        /*$role=DB::table('sys_role')
            ->whereRaw('SRId > ? and Adduser = ?',[5,1])
            ->orderBy('SRId','desc')
            ->get();*/

        //pluck 返回指定字段  lists
        /*$role=DB::table('sys_role')
            ->pluck('SRName','SRId');*/
        //lists 返回指定字段 laravel 5.3放弃了
        /*$role=DB::table('sys_role')
            ->lists('SRName','SRId');*/
        //select 选择查询的字段
        /*$role=DB::table('sys_role')
            ->select('SRName','SRId')
            ->get();*/

        //chunk 分段查询,超实用,下例子  每次查3条
        echo '<pre>';//格式化
        DB::table('sys_role')->chunk(3,function($role){
            var_dump($role);
            //return false;//可以终止查询
        });

        //dd($role);
    }
**//DB查询构造器的操作 五---聚合函数**
 //count() max() min() avg() sum()
    public function muser6(){

        //count()返回行数
        $num=DB::table('sys_role')->count();
        //最大值
        $num=DB::table('sys_role')->max('SRId');
        //最小值
        $num=DB::table('sys_role')->min('SRId');
        //平均值 string类型的
        $num=DB::table('sys_role')->avg('SRId');
        //求和 string类型
        $num=DB::table('sys_role')->sum('SRId');
        var_dump($num);
    }

三、Eloquent ORM 数据模型

**//Eloquent ORM  一 --- 数据模型的简单使用**
    public function muser7(){
        //all 返回所有的集合  注意是数据模型的 对象集合 Sys_role.php
        /*$role = Sys_role::all();

        //find 根据主键查询
        $role = Sys_role::find(3);

        //findOrFail 根据主键查询  查不到就报错
        $role = Sys_role::findOrFail(0);*/

        //get 根据主键查询  查不到就报错
        //$role = Sys_role::get();

        //where  first 等等 也可以chunk
        $role = Sys_role::where('SRId','<',4)
            ->orderBy('SRId','desc')
            ->first();
        //聚合函数 max()等

        dd($role);
    }
**//Eloquent ORM  二 --- 数据模型的新增数据**
    public function muser8(){
        //设置默认时区 PRC 北京时间 Asia/Shanghai 上海时间
        date_default_timezone_set('PRC');
        $mytime = date("Y-m-d H:i:s");
        //使用模型增加数据 save()
        /*$student = new Sys_role();
        $student->SRName='游客001';
        $student->Adduser=1;
        $student->Adddate=$mytime;
        $bool = $student->save();
        dd($bool);*/
        //用create()
        /*$student = Sys_role::create(
          ['SRName'=>'游客004','Adduser'=>1,'Adddate'=>$mytime]
        );*/
        //firstOrCreate() 没有则新增
        /*$student = Sys_role::firstOrCreate(
            ['SRName'=>'游客005','Adduser'=>1,'Adddate'=>$mytime]
        );*/
        //firstOrNew() 没有新增实例,save()之后再保存到数据库
        $student = Sys_role::firstOrNew(
            ['SRName'=>'游客006','Adduser'=>1,'Adddate'=>$mytime]
        );
        $bool = $student->save();

        dd($bool);
    }
**//Eloquent ORM  三 --- 数据模型的更新数据**
    public function muser9(){

        date_default_timezone_set('PRC');
        $mytime = date("Y-m-d H:i:s");
        //通过模型更新
        /*$student = Sys_role::find(12);
        $student->SRName='游客12';
        $student->Adduser=1;
        $student->Adddate=$mytime;
        $bool = $student->save();
        dd($bool);*/

        //update()更新数据
        $student = Sys_role::where('SRId','>','12')
        ->update(['SRDescribe'=>'这都是游客啊']);
        var_dump($student);
    }
**//Eloquent ORM  四 --- 数据模型的删除数据**
    public function muser10(){

        date_default_timezone_set('PRC');
        $mytime = date("Y-m-d H:i:s");
        //通过模型更新
        /*$student = Sys_role::find(12);
        $bool = $student->delete();
        dd($bool);*/

        //通过主键删除 destroy()
        //$num = Sys_role::destroy(21);
        /*$num = Sys_role::destroy(19,20);
        $num = Sys_role::destroy([17,18]);
        dd($num);*/

        //条件删除
        $num = Sys_role::where('SRId','>=',12)->delete();
        dd($num);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值