Laravel5数据库操作-查询构建器案例详解

发布时间:2017-06-12 编辑:小张个人博客 查看次数:3238

Laravel数据库查询构建器提供了一个方便的、平滑的接口来创建和运行数据库查询。查询构建器可以用于执行应用中大部分数据库操作,并且能够在支持的所有数据库系统上工作。Laravel查询构建器使用PDO参数绑定来避免SQL注入攻击,不再需要清除传递到绑定的字符串。

Laravel-插入(Insert)

如果数据表有自增ID,使用insertGetId方法来插入记录将会返回ID值:

$id = DB::table('test')->insertGetId(['name'=> 'Laravel']); // 新增数据 返回新增ID
dd($id);

你甚至可以一次性通过传入多个数组来插入多条记录,每个数组代表要插入数据表的记录:

DB::table('users')->insert([
    ['email' => '[email protected]', 'password' => '123456'],
    ['email' => '[email protected]', 'password' => '123456']
]);

Laravel-更新(Update)

$bool = DB::table('test')->where('id',7)->update(['name'=> 'laravel5']);  // 更新数据
dd($bool);

Laravel-删除(Delete)

当然,查询构建器还可以通过delete方法从表中删除记录:

DB::table('users')->delete();

在调用delete方法之前可以通过添加where子句对delete语句进行约束:

DB::table('users')->where('votes', '<', 100)->delete();

如果你希望清除整张表,也就是删除所有列并将自增ID置为0,可以使用truncate方法

DB::table('users')->truncate();

Laravel-自增/自减

这两个方法都至少接收一个参数:需要修改的列。第二个参数是可选的,用于控制列值增加/减少的数目。

DB::table('users')->where('id',3)->increment('votes');      // 自增
DB::table('users')->increment('votes', 5);  // 自增 +5

DB::table('users')->decrement('votes');  // 自减
DB::table('users')->decrement('votes', 5);

Laravel-查询数据库

使用get方法获取表中所有记录:

$data = DB::table('test')->get();  // 查询所有数据
dd($data);

从一张表中获取一行/一列

$data = DB::table('test')->orderBy('id','desc')->first(); // 查询一条记录
dd($data);

$data = DB::table('test')->whereRaw('id = ? and name = ?',['3','小王'])->first(); // 多个条件查询
dd($data);

如果想要获取包含单个列值的数组,可以使用lists方法

$data = DB::table('test')->lists('name'); //单个列值的数组
dd($data);

查询指定字段数据

$data = DB::table('test')->select('id','name')->get(); //查询指定字段
dd($data);

Laravel-聚合函数

提供了很多聚合方法,比如count, max, min, avg, 和 sum,你可以在构造查询之后调用这些方法:

$users = DB::table('users')->count();
$price = DB::table('orders')->max('price');

Laravel数据库查询构建器提供了一个方便的、平滑的接口来创建和运行数据库查询。查询构建器可以用于执行应用中大部分数据库操作,并且能够在支持的所有数据库系统上工作。Laravel查询构建器使用PDO参数绑定来避免SQL注入攻击,不再需要清除传递到绑定的字符串。

出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号