Laravel入门教程(四)- 数据库操作之 - 查询构造器
2017-11-23 10:01
801 查看
1. 查询构造器(query builder)
2. 新建记录
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function query1(){ // 新增记录 $bool = DB::table('student')->insert([ 'name' => 'Lisa', 'age' => 18 ]); var_dump($bool); // 新增记录获取自动增加的id $id = DB::table('student')->insertGetId([ 'name' => 'Lucy', 'age' => 22 ]); var_dump($id); // 一次插入多条数据 $bool = DB::table('student')->insert([ ['name' => 'Tommy', 'age' => 23], ['name' => 'Peggy', 'age' => 21] ]); var_dump($bool); } }
3. 更新数据
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function query2(){ // 基本更新 $num = DB::table('student') ->where('id', 1006) ->update(['age' => 28]); var_dump($num); // 更新自增1 $num = DB::table('student') ->increment('age'); // 更新自减1 $num = DB::table('student') ->decrement('age'); // 更新自增10 $num = DB::table('student') ->increment('age', 10); // 更新自减10 $num = DB::table('student') ->decrement('age', 10); // 指定id $num = DB::table('student') ->where('id', 1006) ->decrement('age', 5, ['name' => 'Jane']); } }
4. 删除数据
两种方式:- delete
- truncate
truncate操作相当危险,会清空所有的数据!!!
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { // 删除 public function query3() { // 简单删除 $num = DB::table('student') ->where('id', 1006) ->delete(); var_dump($num); // 简单删除带 >, <或>=, <= $num = DB::table('student') ->where('id', '>=', 1005) ->delete(); var_dump($num); // truncate table,不返回任何值 // DB::table('student')->truncate(); } }
5. 查询数据
get():获取全部first():获取第一个
where():条件,如果是用原生的,用whereRaw()
pluck(): 获取指定字段
lists():获取指定字段,并返回数组,且可以设置数组下标
select():选择要返回的字段
chunk():不全部返回,每次返回指定数量的记录
调试利器:Laravel的dd()函数
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { // 查询 public function query4() { // get()获取所有 $rs = DB::table('student')->get(); dd($rs); // first()获取第一条 $rs = DB::table('student') ->first(); dd($rs); // 排序 $rs = DB::table('student') ->orderBy('id', 'DESC') ->first(); dd($rs); // where() $rs = DB::table('student') ->where('id', '>=', 1002) ->get(); dd($rs); // where()多个条件 $rs = DB::table('student') ->whereRaw('id >= ? AND age > ?', [1001, 18]) ->get(); dd($rs); // pluck() 返回结果集中指定的字段 $names = DB::table('student') ->pluck('name'); dd($names); // lists() 返回结果集中指定的字段到数组,可以指定下标 $names = DB::table('student') ->lists('name', 'id'); dd($names); // select() 返回指定字段 $names = DB::table('student') ->select('id', 'name') ->get(); dd($names); // chunk()一次只查部分数据 DB::table('student')->chunk(2, function($students){ var_dump($students); return false; }); } }
6. 聚合函数
countmax
min
avg
sum
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { // 使用聚合函数 public function query5() { // count $qty = DB::table('student')->count(); dd($qty); // max $qty = DB::table('student')->max('age'); dd($qty); // min $qty = DB::table('student')->min('age'); dd($qty); // avg $qty = DB::table('student')->avg('age'); dd($qty); // sum $qty = DB::table('student')->sum('age'); dd($qty); } }
相关文章推荐
- Laravel入门教程(三)- 数据库操作 DB facade
- 初级laravel 数据库操作之 查询构造器
- PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
- PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
- PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
- Laravel入门教程(五)- 数据库操作 - Eloquent ORM
- [李景山php]每天laravel[017]-laravel 中级任务--小白教程----实际操作-创建基础任务 to-do-list 案例 ---准备数据库
- Laravel中的数据库查询教程
- tp数据库与模型——查询条件生成方法、查询构造器实现CRUD操作
- Laravel 数据库实例教程 —— 使用DB门面操作数据库
- ArangoDB入门教程(四)java操作ArangoDB数据库
- MyBatis学习笔记-01.MyBatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题
- Laravel基础(三)--使用Eloquent ORM操作数据库之查询
- 数据库MYSQL入门教程(2)——数据库操作指令
- Zend Framework入门教程之Zend_Db数据库操作详解
- FLASH与ASP通信入门教程(四) ASP操作数据库入门
- PHP Lumen - 入门教程 - 操作数据库
- [django]入门教程4:操作数据库
- 06_传智播客hibernate教程_完善HibernateUtil类及hql查询入门 &amp;amp;&amp;amp;07_传智播客hibernate教程_实体类或属性名与数据库关键字冲突问题
- Laravel学习笔记(五)---操作数据库--查询构建器(Query Builder)