Laravel5.1 基础查询构造器

教程 manarch ⋅ 于 2017-01-05 10:55:32 ⋅ 最后回复由 mingyun 2017-01-15 20:33:26 ⋅ 661 阅读

原生SQL语句

使用原生sql语句查询请先引入 use Illuminate\Support\Facades\DB;

  • 查询语句
// sql 语句
$sql = 'SELECT * FROM users;';

// 执行成功 返回 array
DB::select( $sql );
  • 插入语句
// sql 语句
$sql = 'INSERT INTO users(`name`,`age`) values(?,?);';

//执行成功 返回 boolean
DB::insert( $sql ,['manarch',18]);
  • 修改语句
// sql 语句
$sql = 'UPDATE users SET `age` = ? WHERE `name` = ?;';

// 返回受影响行数 rows number
DB::update( $sql , [19,'manarch'] );
  • 删除语句
// sql 语句
$sql = 'DELETE FROM users WHERE id = ?;';

// 返回删除行数 rows number
DB::delete( $sql , [1]);

注:建议 sql 语句中的变量请尽量使用 ' ? ' 占位,然后在执行时使用数组的方式替换,有助于防止 sql 注入攻击。


查询构造器

  • 查询语句

插入一条数据:

// 返回 boolean
DB::table('users')->insert(['name'=>'manarch','age'=>18]);

插入一条数据并获取新数据的主键值:

// 返回 新增数据的主键值
DB::table('users')->insertGetId(['name'=>'manarch1','age'=>18]);

插入多条数据:

// 返回 boolean
DB::table('users')->insert([
    ['name'=>'manarch2','age'=>18],
    ['name'=>'manarch3','age'=>18],
]);
  • 修改数据

常规修改操作:

// 返回 受影响行数 rows number
DB::table('users')->where('name','manarch2')->update(['age'=>19]);

给某字段 1 :

// 把 manarch3 的年龄加 1 岁
// 返回 受影响行数 rows number
DB::table('users')->where('name','manarch3')->increment('age');

// 把 manarch3 的年龄加 2 岁,并把名字修改为 manarch4
// 返回 受影响行数 rows number
DB::table('users')->where('name','manarch3')->increment('age',2,['name'=>'manarch4']);

给某字段 1 :

// 把 manarch3 的年龄减 1 岁
// 返回 受影响行数 rows number
DB::table('users')->where('name','manarch3')->decrement('age');

// 把 manarch3 的年龄减 2 岁,并把名字修改为 manarch4
// 返回 受影响行数 rows number
DB::table('users')->where('name','manarch3')->decrement('age',2,['name'=>'manarch4']);
  • 删除数据

常规删除操作:

// 返回 删除的行数 rows number
DB::table('users')->where('name','manarch4')->delete();

清空表:

// 返回 void
DB::table('users')->truncate();
  • 查询数据

获取 所有 数据:

// 返回 array(array,array)
DB::table('users')->get();

获取 一条 数据:

// 返回 object
DB::table('users')->first();

条件 获取数据

// 获取 id 大于2 的所有数据
// 返回 array(array,array)
DB::table('users')->where('id','>',2)->get();

欢迎大家到https://manarch.cn阅读,本文链接

https://manarch.cn

本帖已被设为精华帖!
本帖由 Summer 于 1月前 加精
回复数量: 3
  • 2017-01-06 18:52:30

    个人补充一点:
    DB类要使用timestamp,需要在建表时将

    $table->timestamp();

    更改为

    $table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));
    $table->timestamp('updated_at')->default(\DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));

    如有错误或更好的方法请指正。

    另外我都忘记laravel中有insertGetId()这个方法了!汗啊

  • manarch
    2017-01-06 21:44:56

    @泽 我也是才开始用 laravel 之前一直用 yii

  • mingyun
    2017-01-15 20:33:26

    博客界面和简书挺像的

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter