🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 数据库操作返回值总结 * 0\. 前言 * 1\. Db类操作数据库 * * 1.1 新增 * 1.2 更新 * 1.3 删除 * * 1.3.1 单条删除 * 1.3.2 批量删除 * 1.4 查询 * * 1.4.1 单笔记录 * 1.4.2 多笔记录 * 2\. Model模型类操作数据库 * * 2.1 新增 * 2.2 更新 * * 2.2.1 单笔更新 * 2.2.2 批量更新 * 2.3 删除 * * 2.3.1 删除模型 * 2.3.2 根据主键删除 * 2.3.3 条件删除 * 2.4 查询 * * 2.4.1 单笔记录 * 2.4.2 多笔记录 # 0\. 前言 # 1\. Db类操作数据库 ## 1.1 新增 ~~~php $data = ['username' => 'bar', 'password' => 'foo']; $res = Db::name('user')->insert($data); ~~~ 返回值: * 成功:返回`1` * 失败:抛出`异常` ## 1.2 更新 ~~~php // 方式1:save方法包含主键 $res = Db::name('user')->save(['id' => 7, 'username' => 'thinkphp1']); // 方式2:update方法where条件更新 $res = Db::name('user')->where('id', 7)->update(['username' => 'thinkphp']); // 方式3:update方法包含主键 $res = Db::name('user')->update(['username' => 'thinkphp','id' => 1]); ~~~ 返回值: * 成功:返回`1` * 失败:若没有发生更新则返回`0`;若更新字段数据表不存在抛出`异常` ## 1.3 删除 ### 1.3.1 单条删除 ~~~php // 根据主键删除 $res = Db::name('user')->delete(7); // 条件删除 $res = Db::name('user')->where('id',7)->delete(); ~~~ 返回值: * 成功:返回`1` * 失败:返回`0`(包括id不存在) ### 1.3.2 批量删除 ~~~php // 根据主键删除 $res = Db::name('user')->delete([11,12]); // 条件删除 $res = Db::name('user')->where('id','>',10)->delete(); ~~~ 返回值: * 成功:返回删除记录的条数 * 失败:返回`0`(包括id不存在) ## 1.4 查询 ### 1.4.1 单笔记录 ~~~php $res = Db::name('user')->where('id', 16)->find(); ~~~ 返回值: * 成功:返回`结果数组` * 失败:返回`null` ### 1.4.2 多笔记录 ~~~php $res = Db::name('user')->where('status', 1)->select(); ~~~ 返回值: * 成功:返回`数据集对象` ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210103145124961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p5MTI4MTUzOTYyNg==,size_16,color_FFFFFF,t_70) * 失败:返回`空数据集对象` ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210103145145753.png) 如果需要转换为数组可以使用`toArray()`方法: ~~~php Db::name('user')->where('status', 1)->select()->toArray(); ~~~ 返回结果为数组: ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021010314530990.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p5MTI4MTUzOTYyNg==,size_16,color_FFFFFF,t_70) # 2\. Model模型类操作数据库 ## 2.1 新增 ~~~php $user = new UserModel; $user->username = "aaa"; $user->password = "aaa"; $res = $user->save(); dump($res); // 也可直接把数据写在save方法里面: $user->save(['username' => 'thinkphp','password' => '123456' ]); ~~~ 返回值: > `save`方法成功会返回`true`,并且只有当`before_insert`事件返回`false`的时候返回`false`,一旦有错误就会`抛出异常`。所以无需判断返回类型。 ## 2.2 更新 ### 2.2.1 单笔更新 ~~~php $user = UserModel::find(16); $user->username = 'qwer'; $res = $user->save(); dump($res); ~~~ > `save`方法成功返回`true`,并只有当`before_update`事件返回`false`的时候返回`false`,有错误则会`抛出异常`。 ### 2.2.2 批量更新 ~~~php $user = new UserModel; $list = [['id'=>16, 'username'=>'thinkphp'],['id'=>17, 'username'=>'onethink'] ]; $res = $user->saveAll($list); dump($res); ~~~ > 返回的是一个`数据集对象` ## 2.3 删除 ### 2.3.1 删除模型 ~~~php $user = UserModel::find(16); $res = $user->delete(); dump($res); ~~~ > 删除成功返回`true`,失败可能抛出异常 ### 2.3.2 根据主键删除 ~~~php User::destroy(1); // 支持批量删除多个数据 User::destroy([1,2,3]); ~~~ > 主键不存在也返回`true` ### 2.3.3 条件删除 ~~~php User::where('id','>',10)->delete(); ~~~ > 返回删除的`记录数` ## 2.4 查询 ### 2.4.1 单笔记录 ~~~php $user = UserModel::find(18); // where查询 $user = UserModel::where('username', 'aaaa789')->find(); ~~~ > 返回`模型数据`,数据在data参数中;若查询失败返回`null` ### 2.4.2 多笔记录 ~~~php $users = UserModel::select([18,19]); // where查询 $users = UserModel::where('status', 1)->select(); ~~~ > 返回`模型集合`;若数据不存在返回`空模型集合` * * *