最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Laravel查询构建器对数据库增删改查的例子
时间:2022-06-24 18:44:13 编辑:袖梨 来源:一聚教程网
获取查询构建器很简单,还是要依赖DB门面,我们使用DB门面的table方法,传入表名,即可获取该表的查询构建器:
$users = DB::table('users');
这样我们就获取到了$users表的查询构建器,实际上,底层返回的是IlluminateDatabaseQueryBuilder的实例,我们对查询构建器的所有操作都是调用该实例对应类上的方法。下面我们就列举查询构建器的一些常用方法,我们还是沿用上一节创建的$users表做演示说明 。
1、新增数据
使用查询构建器的insert方法即可插入一条/多条数据:
DB::table('users')->insert([
['id'=>1,'name'=>'Laravel','email'=>'[email protected]','password'=>'123'],
['id'=>2,'name'=>'Academy','email'=>'[email protected]','password'=>'123'],
['id'=>3,'name'=>'LaravelAcademy','email'=>'[email protected]','password'=>'123']
]);
执行成功后即可在数据表$users中插入三条记录。有时候,我们需要插入记录后获取自增ID,可以使用insertGetId方法:
$insertId = DB::table('users')->insertGetId(
['name'=>'Laravel-Academy','email'=>'[email protected]','password'=>'456']
);
2、更新数据
更新表记录很简单,使用查询构建器的update方法即可:
$affected = DB::table('users')->where('name','Laravel-Academy')->update(['password'=>'123']);
该方法返回受影响的函数。
3、删除数据
使用delete方法删除表记录,删除方法和更新方法类似,返回被删除的行数:
$deleted = DB::table('users')->where('id', '>', 3)->delete();
如果我们是要删除整个数据表数据,则略去where条件,如果是要清空数据表还要将自增ID置为0,可以使用truncate方法:
DB::table('users')->truncate();
4、基本查询
4.1 获取所有表记录
使用get方法即可获取一张表的所有记录:
$users = DB::table('users')->get();
dd($users);
如果是获取指定列的数据,则需要加上select条件:
$users = DB::table('users')->select('name','email')->get();
dd($users);
4.2 获取单条记录
获取单条记录需要在查询基础上加上first方法:
$user = DB::table('users')->where('name','Laravel')->first();
dd($user);
4.3 分组块获取数据
如果数据库包含多条数据,则一次性获取会极大影响性能,对应地,我们可以调用chunk方法分组块获取数据:
DB::table('users')->chunk(2,function($users){
foreach($users as $user){
// if($user->name=='LaravelAcademy')
// return false;
echo $user->name.'
';
}
});
这里我们指定每次取两条记录。注释部分的意思是我们可以设定查询退出条件,当达到该条件时,查询退出,不再往下执行。
4.4 获取单列的值
上述方法获取的查询结果都是对象实例/对象实例数组,有时候,我们只是想简单获取单列的值,遍历数组获取指定列的值太麻烦,可以使用lists方法获取列值数组:
$users = DB::table('users')->lists('name');
dd($users);
这样我们就可以免去遍历对象数组的麻烦。
4.5 原生表达式
此外,查询构建器还支持原生表达式,我们需要调用DB门面的raw方法来实现:
$users = DB::table('users')->select(DB::raw('name,email'))->where('id','<',3)->get();
dd($users);
如何使用查询构建器实现对数据库的高级查询?比如join、union、添加自定义where条件、排序、分组、分页后面会有介绍。
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21