一、使用DB类操作数据库
配置好数据库连接后,就可以使用DB类来运行查询。DB类为每种查询提供了相应方法:select, update, insert, delete和statement。
1、运行原生sql查询
注意:原生sql语句中的数据表名,必须是包含前缀的完整表名。
-> 运行 select/insert/update/delete 查询
$results = DB::select('select * from users where id = ?', [1]);
select方法以数组的形式返回结果集,数组中的每一个结果都是一个PHP StdClass对象,从而允许你像下面这样访问
结果值:
foreach ($results as $user) {
echo $user->name;
}
-> 运行一个通用语句
有些数据库语句不返回任何值,对于这种类型的操作,可以使用DB类的statement方法:该方法返回布尔值true或false,代表语句执行成功或失败。
DB::statement('drop table users');
2、查询构建器
指定操作的数据表:
DB::table(表名);
注:查询构建器中table方法中的表名,是不包含前缀的表名。
-> 查询数据
①获取多条数据–get方法
$users = DB::table('users')->where('name', 'John')->get();
get方法返回包含结果集的Illuminate\Support\Collection,其中每一个结果都是PHP的StdClass对象实例。你可以像访问对象的属性一样访问字段的值:
foreach ($users as $user) {
echo $user->name;
}
②获取一条数据–first方法
如果你只是想要从数据表中获取一行数据,可以使用first方法,该方法将会返回单个StdClass对象:
$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;
注:根据主键获取一条数据–find方法
如果你想要根据主键值从数据表中获取数据,可以使用find方法(必须传递参数):
//传递一个主键值,获取一条数据
$user = DB::table('users')->find(1);
③聚合查询(统计查询)
查询构建器还提供了多个聚合方法,如count, max, min, avg和 sum,你可以在构造查询之后调用这些方法:
$users = DB::table('users')->count();
$price = DB::table('orders')->max('price');
④select子句–select方法
当然,我们并不总是想要获取数据表的所有列,使用select方法,你可以为查询指定自定义的select子句:
$users = DB::table('users')->select('name', 'email as user_email')->get();
⑤where子句–where方法
$users = DB::table('users')
->where('votes', '>=', 100)
->get();
$users = DB::table('users')
->where('votes', '<>', 100)
->get();
$users = DB::table(