Laravel5.1 数据库操作

数据库操作

  1. 支持的数据库类型
    • MySQL
    • Postgres
    • SQLite
    • SQL Server
  2. 数据库连接配置
    文件位置 config/database.php
    结果集的返回类型 'fetch' => PDO::FETCH_ASSOC
    .env环境快速配置
  3. 数据库基本操作
    • 查询 DB::select
    • 插入 DB::insert
    • 更新 DB::update
    • 删除 DB::delete
    • 一般语句 DB::statement('drop table users');
    • 事务操作
        DB::beginTransaction
        DB::rollBack()
        DB::commit()
      
    • 操作多个数据库 DB::connection('foo')->select(...)

构造器

  1. 增删改查

    1. 插入
    1. 更新 DB::table('users')->where('id',1)->update(['votes'=>1]);
    2. 删除 DB::table('users')->where('votes', '<', 100)->delete();
    3. 查询
    • 查询所有 DB::table('users')->get()
    • 查询单条 DB::table('users')->first()
    • 查询单条结果中的某个字段 DB::table('user')->value('username')
    • 获取一列数据 DB::table('user')->lists('username')
  2. 连贯操作

    1. 设置字段 DB::table('users')->select('name', 'email as user_email')->get()
    2. 条件
    • DB::table('users')->where('name','like','T%')->get()
    • DB::table('users')->where('votes', '>', 100)->orWhere('name', 'John')->get();
    • DB::table('users')->whereBetween('votes', [1, 100])->get()
    • DB::table('users')->whereIn('id', [1, 2, 3])->get()
    1. 排序 orderBy('name', 'desc')
    2. 分页 DB::table('users')->skip(10)->take(5)->get();
    3. 连接表(join)

      DB::table('users')
       ->join('contacts', 'users.id', '=', 'contacts.user_id')
       ->join('orders', 'users.id', '=', 'orders.user_id')
       ->select('users.*', 'contacts.phone', 'orders.price')
       ->get();
      
    4. 计算

    • 总数 DB::table('users')->count()
    • 最大值 DB::table('orders')->max('price')
    • 平均值 DB::table('orders')->avg('price')

sql语句记录

App/Providers/AppServiceProvider.php  boot方法中添加
DB::listen(function($sql, $bindings, $time){
     //写入sql
     file_put_contents('.sqls', "[".date('Y-m-d H:i:s')."]".$sql."\r\n", FILE_APPEND);
});
Event::listen('illuminate.query',function($query){
     var_dump($query);
 });