码迷,mamicode.com
首页 > 数据库 > 详细

5、连接数据库、新建数据表

时间:2020-06-07 21:21:46      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:laravel   插入   tab   fun   除了   asc   select   public   数据   

laravel提供了三种操作数据库的方式

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 (原始查找)   [f??sɑ?d] 

使用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);
    });
}

 

5、连接数据库、新建数据表

标签:laravel   插入   tab   fun   除了   asc   select   public   数据   

原文地址:https://www.cnblogs.com/mingliangge/p/13058377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!