zoukankan      html  css  js  c++  java
  • Laravel DB类操作数据库

    laravel支持的数据库类型

    • MySQL
    • Pgsql
    • SQLite
    • SQL Server

    laravel操作数据库所使用的扩展 pdo,一定要开启pdo扩展

    img

    配置连接数据库信息

    在laravel中修改连接数据库的文件有两处

    • 修改 .env文件
    • 修改config/database.php文件。

    laravel5.4之后对我们的数据库的编码就进行了默认改变,默认使用 utf8mb4

    创建数据库

    img

    修改.env文件来连接数据库

    img

    通过配置后,发现,如果我们的数据表有前缀的话,在.env文件中不能去设置

    img

    到此我们的数据库的配置就完成了

    注:表前缀,如果有则添加,没有可以不修改。

    检查是否配置好

    img

    img

    DB类执行原生SQL语句

    // 添加操作
    $ret = DB::insert('insert into test_member (name,age,email) values (:name,:age,:email)', [':name'=>'张三',':age'=>20,':email'=>'admin@admin.com']);
    
    // 修改操作
    $ret = DB::update('update test_member set age=:age where id=:id', [':age' => 12, ':id' => 1]);
    
    // 查询 select 
    # 查询单条
    $ret = DB::selectOne("select * from web64_user where id=:id",[':id'=>$id]);
    
    # 查询多条
    $ret = DB::select("select * from web64_user");
    
    // 删除操作
    $ret = DB::delete("delete from test_member where id=:id",[':id'=>1]);
    
    

    定义路由

    img

    创建控制器

    php artisan make:controller MydbController

    数据表

    img

    控制器

    img

    img

    DB构建器操作数据库

    查询(get/first)

    table(表名),这里的表名,如查有前缀不用写。
    
    # 查询多条 get all
    # all不可以接where条件
    
    // 查询所有无条件
    $data = DB::table('user')->get(); // 默认 [‘*’]
    
    // 查询所有,并指定字段 推荐使第一种方式
    $data = DB::table('user')->get(['name','age']);
    
    // 获取ID大于5的数据
    $ret = DB::table('member')->where('id','>=',5)->get();
    
    // when 来进行条件的搜索
    $kw = $request->get('kw','user');
    
    // when字段  如果为真则执行匿名函数中的操作
    $ret = DB::table('users')->when($kw,function (Builder $query) use ($kw){
    	$query->where('username','like',"%{$kw}%");
    })->get();
    
    
    # 查询单条记录
    $ret = DB::table('member')->where('id', 5)->first();
    
    # 获取某个具体的值
    $ret = DB::table('member')->where('id',5)->value('name');
    
    # 获取一列数据
    $ret = DB::table('member')->pluck('name');
    
    # 以ID为下标 name为值
    $ret = DB::table('member')->pluck('name', 'id');
    
    # 排序操作
    $ret = DB::table('member')->orderBy('id','desc')->get();
    
    # 查询总记录数
    echo DB::table('member')->count();
     
    # 分页获取数据
    $ret = DB::table('member')->orderBy('id','desc')->offset(0)->limit(2)->get();
    limit:表示限制输出的条数
    offset:从什么地方开始,起始从0开始
    
    $ret = DB::table('users')->whereIn('id',[2,3,5])->get()
    $ret = DB::table('users')->whereBetween('id',[3,5])->get();
    

    定义路由

    img

    控制器

    img

    img

    img

    添加数据操作(insert/ insertGetId)

    对数据库中的某个表增加数据主要有两个方法可以实现,分别是insert()和insertGetId()

    • insert() 可以同时添加一条或多条,返回值是布尔类型。
    • insertGetId() 只能添加一条数据,返回自增的id。
    // 添加数据
    $ret = DB::table('member')->insert([
       'name' => '张三丰',
       'age' => 50,
       'email' => 'ee@ee.com'
    ]);
    
    // 添加数据并得到插入时的ID值
    $id = DB::table('member')->insertGetId([
       'name' => '小华',
       'age' => 60,
       'email' => 'ff@ff.com'
    ]);
    
    // 添加多条记录
    $ret = DB::table('member')->insert([	
       ['name'=>'AAAA','age'=>20,'email'=>'111@111.com'],
       ['name'=>'BBBB','age'=>30,'email'=>'222@222.com'],
    ]);
    

    img

    修改数据(update)

    $ret = DB::table('member')->where('id', 2)->update([
        'name' => '修改一下',
        'age'  => 50
    ]);
    

    删除数据(delete)

    // 删除数据
    $ret = DB::table('member')->where('id',2)->delete();
    

    img

  • 相关阅读:
    Java实现蓝桥杯 算法训练 Professor Monotonic's Network
    Java实现 蓝桥杯 算法训练 数字游戏
    Java实现 蓝桥杯 算法训练 数字游戏
    Java实现 蓝桥杯 算法训练 数字游戏
    Java实现 LeetCode 264 丑数 II(二)
    Java实现 LeetCode 264 丑数 II(二)
    linux下c/c++方式访问curl的帮助手册
    boost 1.56.0 编译及使用
    使用Boost.Asio编写通信程序
    webrtc教程
  • 原文地址:https://www.cnblogs.com/makalochen/p/14394042.html
Copyright © 2011-2022 走看看