lanmantech 2020-06-07
1、DB facade (原始查找) [f??sɑ?d]
2、查询构造器
3、Eloquent ORM [?el?kw?nt]
1、config/database.php 保存连接数据库的账号密码
2、但是账号密码指向的是 app/.env 文件
3、所以修改数据地址,数据库名,密码等操作都在 .env 文件完成
4、修改完后重启下 php artisan serve
使用DB facade前,先在控制器里进行引入
use Illuminate\Support\Facades\DB; //使用数据库前,先进行数据库的引入
控制器:增删改查
public function shujvku(){ //查 $shujv = DB::select(‘select * from news‘); var_dump($shujv); //输出数据,格式乱 dd($shujv); //输出数据,格式整齐 //增 $bool = DB::insert(‘insert news(title,author) values(?,?)‘,[‘良哥‘,‘好好‘]); // 两个问好对应后面数组的两个值。若不加?,sql里面的值是写死的;后面数组里面的值可以动态更改 // 增加成功后会返回一个布尔值 var_dump($bool); //布尔值为true,即增加成功 //改 $gai = DB::update(‘update news set title=? where author=?‘,["名利阿斯蒂芬肯德基顺利打开附件",‘好好‘]); var_dump($gai); //修改成功后,返回修改了多少行 //删 $san = DB::delete(‘delete from news where Id>?‘,[10]); var_dump($san); //删除成功后,返回删除了多少行 }
配置好路由即可将数据的增删改查操作
使用查询构造器前,先在控制器里进行引入
use Illuminate\Support\Facades\DB; //使用数据库前,先进行数据库的引入
查询构造器:添加数据
public function index(){ //查询构造器:增 $bool = DB::table(‘news‘) -> insert([‘title‘ => ‘题目深刻的房间里‘ , ‘author‘ => ‘作者顺利打开附件‘]); var_dump($bool); //插入数据,返回布尔值 //插入成功后,返回该条记录的id $id = DB::table(‘news‘) -> insertGetId([‘title‘ => ‘题目深刻11111‘ , ‘author‘ => ‘作者顺利打开11111‘]); var_dump($id); //插入数据,成功后,返回该条记录的id //插入多条数据 $duo = DB::table(‘news‘) -> insert([ [‘title‘ => ‘111111111111111‘ , ‘author‘ => ‘1111111111111111‘], [‘title‘ => ‘22222222222222‘ , ‘author‘ => ‘22222222222222222‘] ]); var_dump($duo); //插入后返回布尔值 }
查询构造器:更新数据
public function index(){ //查询构造器:更新数据 $num = DB::table(‘news‘) ->where(‘Id‘,14) ->update([‘title‘ => ‘更新11111111‘]); var_dump($num); //成功后返回影响的行数 }
对某些字段进行自增自减,id除外
public function index(){ //给某个字段的内容全部自增1 $num1 = DB::table(‘news‘) -> increment(‘count‘); //不能对Id进行自增 //给某个字段的内容全部自增3 $num2 = DB::table(‘news‘) -> increment(‘count‘,3); var_dump($num1,$num2); //返回受影响的行数 //给某个字段的内容全部自减1 $num3 = DB::table(‘news‘) -> decrement(‘count‘); //不能对Id进行自减 //给某个字段的内容全部自减3 $num4 = DB::table(‘news‘) -> decrement(‘count‘,3); var_dump($num1,$num2); //返回受影响的行数 }
给单独某一条记录的字段进行自增或自减
public function index(){ //给单独某一条记录的字段进行自增或自减 $num1 = DB::table(‘news‘) ->where(‘Id‘,14) //查找id为14的那一行 -> increment(‘author‘,3); //将author字段自增3 var_dump($num1); //返回受影响的行数 }
给某行记录进行自增的同时,对其他字段进行更新
public function index(){ $num2 = DB::table(‘news‘) ->where(‘Id‘,14) //查找id为14的那一行 -> increment(‘author‘,3,[‘title‘ => ‘自增的同时修改‘]); //若要更新多个字段,数组里面再嵌套数组 var_dump($num2); //返回受影响的行数 }
查询构造器:删除数据
public function index(){ //查询构造器:删除数据 $num3 = DB::table(‘news‘) ->where(‘Id‘,14) //删除某条记录 ->delete(); var_dump($num3); //返回受影响的行数 }
删除多行数据,删除 >=x 的数据
public function index(){ //查询构造器:删除数据 $num3 = DB::table(‘news‘) ->where(‘Id‘,‘>=‘,4) //删除Id>=4的记录 ->delete(); var_dump($num3); //返回受影响的行数 }
truncate,删除整个表 [tr???ke?t]
DB::table(‘news‘)->truncate(); //删除某个表,不会返回任何数据
查询构造器:查询数据
查询数据表的所有内容
public function index(){ // 查询表的所有数据 $num4 = DB::table(‘news‘)->get(); //查询news表的所有数据 dd($num4); //返回结果集 }
查询某一条数据,或某一个范围的数据
public function index(){ //查询某一条数据,或某一个范围的数据 $data = DB::table(‘news‘) ->where(‘Id‘,‘>‘,3) //查询Id>3的数据 ->get(); dd($data); }
查询 符合多个条件的数据(可以试着做登陆验证)
public function index(){ //查询 符合多个条件的数据(可以试着做登陆验证) $deng = DB::table(‘news‘) ->whereRaw(‘Id >= ? and title=?‘,[4,2]) //id>=4,title=2的同一条数据 ->get(); dd($deng); }
查询第一条数据
public function index(){ //first:查询第一条数据,默认正序 $num5 = DB::table(‘news‘)->first(); //first:查询第一条数据,逆序方式 $num6 = DB::table(‘news‘)->orderBy(‘Id‘,‘desc‘)->first(); dd($num5,$num6); }
查询表的某一个字段的所有内容
public function index(){ //pluck:查询表的某一个字段的所有内容 $num6 = DB::table(‘news‘) ->pluck(‘title‘); //查询news表的title字段 dd($num6); }
查询一个表的多个字段
public function index(){ //select:查询一个表的多个字段 $num8 = DB::table(‘news‘) ->select(‘title‘,‘author‘,‘source‘) ->get(); dd($num8); }
chunk:当数据有上万条时,指定每次查询多少条
public function index(){ //chunk:当数据有上万条时,指定每次查询多少条 DB::table(‘news‘) -> orderBy(‘Id‘,‘asc‘) //使用chunk时,必须使用orderBy子句。顺序为asc,逆序为desc -> chunk (2,function($count){ //每次查询两条数据,知道数据查完 echo ‘<pre>‘; //将数据整齐格式化 var_dump($count); }); }