增删改查
一.新增数据
1.使用 insert()方法可以向数据表添加一条数据;
如果你添加一个不存在的数据,会抛出一个异常 Exception;
public function getModel(){ //定义数组数据文件 $date=[ "bname" => "杜伟" ]; //查询后返回的对象赋值给$user 避免下次再创建静态对象节省资源 $user=Db::table('user'); //执行新增语句 $user->insert($date); //这条语句同等上面的两条 // Db::table('user')->insert($date); return json($user->find()); }
2.如果新增成功,insert()方法会返回一个 1 值;
public function getModel(){ $data=[ "bname" => "王玥" ]; $rw=article::table('user')->insert($data); if($rw){ return "新增成功!"; } }
3.你可以使用 data()方法来设置添加的数据数组;
Db::name('user')->data($data)->insert(); //$data 就是上边的数组,insert函数中就不需要填写了
6.使用 insertGetId()方法,可以在新增成功后返回当前数据 ID;
public function getModel(){ $data=[ "bname" => "海波" ]; //使用insertGetId函数获取新增后的id列 return Db::table('user')->insertGetId($data); }
7.使用 insertAll()方法,可以批量新增数据,但要保持数组结构一致;
public function getModel(){ $data=[ //批量数据,使用数组分开 ["bname" => "王玥"], ["bname" => "海燕"] ]; //使用insertAll函数 批量新增数据 Db::table('user')->insertAll($data); return Db::getlastsql(); }
8.批量新增也支持 data()方法,和单独新增类似;这里就不演示了
二.修改数据
1.使用 update()方法来修改数据,修改成功返回影响行数,没有修改返回 0;
public function getModel(){ $data= //批量数据,使用数组分开 ["bname" => "王玥"]; //使用update函数 更新数据 Db::table('user')->where('bid',2)->update($data); return Db::getlastsql(); }
这样也是可以的
public function getModel(){ $data= //批量数据,使用数组分开 ["bname" => "王玥"]; //使用update函数 更新数据 Db::table('user')->where('bid',2)->update(["bname" => "ff"]); return Db::getlastsql(); }
2.或者使用 data()方法传入要修改的数组,如果两边都传入会合并;
Db::name('user')->where('id', 38)->data($data)->update(['password'=>'456']);
3.使用 setField()方法可以更新一个字段值;
Db::name('user')->where('id', 38)->setField('username', '辉夜');
4.增值 setInc()和减值 setDec()也有简单的做法,方便更新一个字段值;
public function getModel(){ //使用setinc 更新单个字段值 最后的语句是 //update set bid=bid+1 where bid=5 Db::table('user')->where('bid',5)->setInc('bid'); return Db::getlastsql(); }
三.删除数据
1.极简删除可以根据主键直接删除,删除成功返回影响行数,否则 0;
Db::name('user')->delete(51);
2.根据主键,还可以删除多条记录;
Db::name('user')->delete([48,49,50]);
3.正常情况下,通过 where()方法来删除;
Db::name('user')->where('id', 47)->delete();
4.通过 true 参数删除数据表所有数据,我还没测试,大家自行测试下;
Db::name('user')->delete(true);