数据库操作返回值总结

  • 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 新增

$data = ['username' => 'bar', 'password' => 'foo'];
$res = Db::name('user')->insert($data);

返回值:

  • 成功:返回1
  • 失败:抛出异常

1.2 更新

// 方式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 单条删除

// 根据主键删除
$res = Db::name('user')->delete(7);
// 条件删除
$res = Db::name('user')->where('id',7)->delete();

返回值:

  • 成功:返回1
  • 失败:返回0 (包括id不存在)

1.3.2 批量删除

// 根据主键删除
$res = Db::name('user')->delete([11,12]);
// 条件删除
$res = Db::name('user')->where('id','>',10)->delete();

返回值:

  • 成功:返回删除记录的条数
  • 失败:返回0 (包括id不存在)

1.4 查询

1.4.1 单笔记录

$res = Db::name('user')->where('id', 16)->find();

返回值:

  • 成功:返回结果数组
  • 失败:返回null

1.4.2 多笔记录

$res = Db::name('user')->where('status', 1)->select();

返回值:

  • 成功:返回数据集对象
  • 失败:返回空数据集对象

如果需要转换为数组可以使用toArray()方法:

Db::name('user')->where('status', 1)->select()->toArray();

返回结果为数组:

2. Model模型类操作数据库

2.1 新增

$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 单笔更新

$user = UserModel::find(16);
$user->username     = 'qwer';
$res = $user->save();
dump($res);

save方法成功返回true,并只有当before_update事件返回false的时候返回false,有错误则会抛出异常

2.2.2 批量更新

$user = new UserModel;
$list = [['id'=>16, 'username'=>'thinkphp'],['id'=>17, 'username'=>'onethink']
];
$res = $user->saveAll($list);
dump($res);

返回的是一个数据集对象

2.3 删除

2.3.1 删除模型

$user = UserModel::find(16);
$res = $user->delete();
dump($res);

删除成功返回true,失败可能抛出异常

2.3.2 根据主键删除

User::destroy(1);
// 支持批量删除多个数据
User::destroy([1,2,3]);

主键不存在也返回true

2.3.3 条件删除

User::where('id','>',10)->delete();

返回删除的记录数

2.4 查询

2.4.1 单笔记录

$user = UserModel::find(18);
// where查询
$user = UserModel::where('username', 'aaaa789')->find();

返回模型数据,数据在data参数中;若查询失败返回null

2.4.2 多笔记录

$users = UserModel::select([18,19]);
// where查询
$users = UserModel::where('status', 1)->select();

返回模型集合;若数据不存在返回空模型集合


⭐️重磅推荐:免费商用电商系统

ThinkPHP6项目基操(20.实战部分 数据库操作返回值总结)相关推荐

  1. ThinkPHP6项目基操目录

    前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...

  2. ThinkPHP6项目基操(15.实战部分 阿里云短信redis)

    阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...

  3. ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)

    模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...

  4. ThinkPHP6项目基操(11.实战部分 部署后台静态页面模板及后台登录页面)

    实战部分 部署后台静态页面模板及后台登录页面 前言 一.部署静态资源到项目 1.新建后台静态资源文件夹 二.后台登录页面 1. 目录结构 2. 模板字符串替换配置 前言 网站后台一般是在基础静态页面上 ...

  5. ThinkPHP6项目基操(16.实战部分 redis+token登录)

    redis+token登录 前言 一.生成唯一token 二.设置token并返回token到前端 三.登录拦截器(需要登录/不需登录) 前言 登录一般可以使用session处理,它使用比较简单,但是 ...

  6. ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)

    项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...

  7. ThinkPHP6项目基操(6.数据库Db操作)

    数据库Db操作 一.数据库配置 二.访问数据库 1. 使用门面模式的Db类 2. 使用容器方式 三.数据库返回数据异常调试 1. 打开APP_DEBUG 2. 打印SQL语句 四.增删查改CURD操作 ...

  8. php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)

    一.定义中间件 namespace app\middleware; class Check { public function handle($request, \Closure $next) { i ...

  9. ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)

    表单令牌Token 0. 前言 1. TP6 令牌token使用 1.1 表单提交 1.2 AJAX提交 2. TP6 令牌token验证 2.1 路由验证 2.2 控制器验证 2.3 验证器验证 0 ...

最新文章

  1. C++中关于配置文件的问题
  2. UVA1343 The Rotation Game旋转游戏
  3. jsp mysql 推荐算法_基于jsp+mysql+Spring+mybatis的SSM协同过滤音乐推荐管理系统(个性化推荐)...
  4. 70个python毕设项目_56个具有开创性的Python开源项目-开始使用Python
  5. C#LeetCode刷题之#485-最大连续1的个数(Max Consecutive Ones)
  6. 云智慧完成D3轮6000万美元融资,继续领跑智能运维市场
  7. 二叉树层序遍历算法实现
  8. 办公自动化系统项目报告
  9. 从0到1打造自己的网络电话系统
  10. 闲置eSATA接口影响Windows 7启动速度
  11. CAD删除全部文字(网页版)
  12. 如何搭建一个自己的微信公众号
  13. 支付宝提现免手续费的方法步骤
  14. 通过虚拟机模拟linux操作系统
  15. 总算挽回点面子,中国上月为印尼发射通信卫星定点成功 运行正常
  16. GitHub超6.8万星,最全Python入门算法来了
  17. 全排列,逆序数与行列式的二三事
  18. 创业兵法—选择最适合你的创业项目
  19. Ansys学习-Ansys workbench-暂态传热问题仿真尝试-水泥盒子
  20. IE9和JPEG-XR:第一印象

热门文章

  1. F5设备中存在一个Ticketbleed漏洞,可被远程攻击者利用
  2. 3分钟实现iOS语言本地化/国际化(图文详解)
  3. Java中子类覆盖父类方法所必须满足的条件
  4. 今天的这样一来的i-p2psearcher
  5. 最近打算再写一个 局域网聊天软件
  6. C++字符串完全指南(2) - 各种字符串类- CRT类
  7. 10个经典的C语言面试基础算法及代码
  8. 一晚浓浓的程序员鸡汤,先干为敬
  9. python 访问网页aspx_asp.net – 如何向python中的.aspx页面提交查询
  10. python模块下载连接清华镜像的具体步骤_anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...