当前位置 主页 > 服务器问题 > Linux/apache问题 >

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

    栏目:Linux/apache问题 时间:2019-12-07 22:09

    本文实例讲述了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>";
     }
    }