Skip to content

构造器的增删改

新增

php
//新增一条记录
DB::table('user')->insert([ 
    'name' => '曹操', 
]);
// insert into `user` (`name`) values (?)

//新增多条记录 
DB::table('user')->insert([
    ['name' => '刘备'],
    ['name' => '关羽'],
    ['name' => '张飞']
]);
// insert into `user` (`name`) values (?), (?), (?)

// 忽略重复新增数据的错误 
DB::table('user')->insertOrIgnore([
    'id'        => 1,
    'name'  => '李白'
]);
// insert ignore into `user` (`id`, `name`) values (?, ?)

//获取新增后返回的 ID
$id = DB::table('user')->insertGetId([
    'name' => '李白'
]);
// insert into `user` (`name`) values (?)

更新

php
//更新修改一条数据 
DB::table('user')->where('id', 10)
    ->update([
        'name' => '李红',
    ]);
// update `user` set `name` = ? where `id` = ?

//参数 1:修改的条件
//参数 2:修改的内容(新增的内容) 
DB::table('user')->updateOrInsert(
    ['id'=>11],
    ['name'=>'李黑']
);
// select exists(select * from `user` where (`id` = ?)) as `exists`
// 不存在
// insert into `user` (`id`, `name`) values (?, ?)
// 存在
// update `user` set `name` = ? where (`id` = ?) limit 1

//新增时,转换为 json 数据
DB::table('user')->insert([
    'name' => json_encode(['age'=>19, 'name'=>'孙权'], JSON_UNESCAPED_UNICODE)
]);

//修改时,使用 object->id 指定
DB::table('user')->where('id', 13)
->update([
    'name->age' => 20
]);
// update `user` set `name` = json_set(`name`, '$."age"', ?) where `id` = ?

//默认自增/自减为 1,可设置
DB::table('user')->where('id', 1)->increment('age'); 
// update `user` set `age` = `age` + 1 where `id` = ?

DB::table('user')->where('id', 2)->decrement('age', 2);
// update `user` set `age` = `age` - 2 where `id` = ?

删除

php
// 删除一条数据
DB::table('user')->delete(1); 
// delete from `user` where `user`.`id` = ?

DB::table('user')->where('id', 2)->delete();
// delete from `user` where `id` = ?

// 清空 
DB::table('user')->delete(); 
// delete from `user`

DB::table('user')->truncate();
// truncate table `user`