3 Db类:增删改
一 添加数据
一维数组:$data = ['name'=>'浙江','e_name'=>'zhejiang','pid'=>0];
1)sava($data) 方法添加
$res = Db::name('bbs_category')->save($data); //成功:返回受影响的行数 一般返回1 //失败:抛出异常
2)insert($date) 方法添加
$res = Db::name('bbs_category')->insert($data); //成功:返回受影响的行数 一般返回1 //失败:抛出异常
3)获取自增ID
$res = Db::name('bbs_category')->insertGetId($data);
4)添加时不存在的字段直接过滤掉
Db::name('user')->strict(false)->insert($data);
5)支持replace写入
mysql数据库支持 replace 写入 数据中name子段是唯一索引,重复数据默认是插入不了的 我们用replace()方法,它会把以前的那条数据删除掉,然后重新写入
$data = ['name'=>'浙江', 'e_name' => 'zhejiang']; $res = Db::name('bbs_category')->replace()->insert($data);
var_dump($res);//打印:int(2)
6 )添加多条数据 insertAll();
//1 数据必须是二维数组 $data = [ ['name'=>'浙江','e_name'=>'zhejiang','pid'=>0], ['name'=>'江苏','e_name'=>'jiangsu','pid'=>0], ['name'=>'上海','e_name'=>'shanghai','pid'=>0], ['name'=>'武汉','e_name'=>'wuhan','pid'=>0] ]; //2 确保要批量添加的数据字段是一致的 Db::name('bbs_category')->insertAll($data); //3 如果数据量非常大,可以分批次执行 $res = Db::name('bbs_category')->limit(100)->insertAll($data);//用limit设置一次批量执行的条数
二 更新数据
1)sava()方法
$data = ['name'=>'浙江','e_name'=>'zj','pid'=>0,'id'=>1]; $res = Db::name('bbs_category')->save($data);//数据中有主键值就执行更新操作
2)update()方法
//成功失败都返回受影响的行数 1、基础语法 $data = ['name'=>'浙江','e_name'=>'zj','pid'=>0]; Db::name('bbs_category')->where('id',25)->update($data); 2、数据中包含主键 $data = ['name'=>'浙江','e_name'=>'zj','pid'=>0,'id'=>25]; Db::name('bbs_category')->update($data);//不需要写更新条件
3)需要使用sql函数 exp()
//1 把id为55的数据 e_name的值 修改为大写 Db::name('bbs_category') ->where('id',55) ->exp('e_name','UPPER(e_name)') ->update();
//2 最终生成的sql
update `think_user` set `name` = UPPER(name) where `id` = 1
3、执行的结果

4)自增inc() 自减dec()
1、把id为55的数据 status值加1
Db::name('bbs_category')
->where('id',55)
->inc('status',1)//第二个参数为步长,不传默认为1
->update();
2、最终的sql
update `think_user` set `score` = `score` + 1 where `id` = 1;
5) raw()跟新
三 删除数据
1)根据主键删除
$res = Db::name('bbs_category')->delete(60);//传入一个id值 //sql:delete from `think_user` where `id` = 1;
$res = Db::name('bbs_category')->delete([60,70]);//传入多个id值 //sql:delete from `bbs_category` where `id` in(60,70)
2)条件删除
$res = Db::name('bbs_category')->where('id',55)->delete(); //sql:sql:delete from `bbs_category` where id = 1;
$res = Db::name('bbs_category')->where('id','>',70)->delete(); //sql: delete from `bbs_category` where `id` > 70;
3)无条件删除所有数据
Db::name('bbs_category')->delete(true);//慎重使用 delete from `think_user`;

浙公网安备 33010602011771号