ThinkPHP6项目基操(20.实战部分 数据库操作返回值总结)
数据库操作返回值总结
- 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.实战部分 数据库操作返回值总结)相关推荐
- ThinkPHP6项目基操目录
前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...
- ThinkPHP6项目基操(15.实战部分 阿里云短信redis)
阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...
- ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)
模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...
- ThinkPHP6项目基操(11.实战部分 部署后台静态页面模板及后台登录页面)
实战部分 部署后台静态页面模板及后台登录页面 前言 一.部署静态资源到项目 1.新建后台静态资源文件夹 二.后台登录页面 1. 目录结构 2. 模板字符串替换配置 前言 网站后台一般是在基础静态页面上 ...
- ThinkPHP6项目基操(16.实战部分 redis+token登录)
redis+token登录 前言 一.生成唯一token 二.设置token并返回token到前端 三.登录拦截器(需要登录/不需登录) 前言 登录一般可以使用session处理,它使用比较简单,但是 ...
- ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)
项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...
- ThinkPHP6项目基操(6.数据库Db操作)
数据库Db操作 一.数据库配置 二.访问数据库 1. 使用门面模式的Db类 2. 使用容器方式 三.数据库返回数据异常调试 1. 打开APP_DEBUG 2. 打印SQL语句 四.增删查改CURD操作 ...
- php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)
一.定义中间件 namespace app\middleware; class Check { public function handle($request, \Closure $next) { i ...
- ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)
表单令牌Token 0. 前言 1. TP6 令牌token使用 1.1 表单提交 1.2 AJAX提交 2. TP6 令牌token验证 2.1 路由验证 2.2 控制器验证 2.3 验证器验证 0 ...
最新文章
- C++中关于配置文件的问题
- UVA1343 The Rotation Game旋转游戏
- jsp mysql 推荐算法_基于jsp+mysql+Spring+mybatis的SSM协同过滤音乐推荐管理系统(个性化推荐)...
- 70个python毕设项目_56个具有开创性的Python开源项目-开始使用Python
- C#LeetCode刷题之#485-最大连续1的个数(Max Consecutive Ones)
- 云智慧完成D3轮6000万美元融资,继续领跑智能运维市场
- 二叉树层序遍历算法实现
- 办公自动化系统项目报告
- 从0到1打造自己的网络电话系统
- 闲置eSATA接口影响Windows 7启动速度
- CAD删除全部文字(网页版)
- 如何搭建一个自己的微信公众号
- 支付宝提现免手续费的方法步骤
- 通过虚拟机模拟linux操作系统
- 总算挽回点面子,中国上月为印尼发射通信卫星定点成功 运行正常
- GitHub超6.8万星,最全Python入门算法来了
- 全排列,逆序数与行列式的二三事
- 创业兵法—选择最适合你的创业项目
- Ansys学习-Ansys workbench-暂态传热问题仿真尝试-水泥盒子
- IE9和JPEG-XR:第一印象
热门文章
- F5设备中存在一个Ticketbleed漏洞,可被远程攻击者利用
- 3分钟实现iOS语言本地化/国际化(图文详解)
- Java中子类覆盖父类方法所必须满足的条件
- 今天的这样一来的i-p2psearcher
- 最近打算再写一个 局域网聊天软件
- C++字符串完全指南(2) - 各种字符串类- CRT类
- 10个经典的C语言面试基础算法及代码
- 一晚浓浓的程序员鸡汤,先干为敬
- python 访问网页aspx_asp.net – 如何向python中的.aspx页面提交查询
- python模块下载连接清华镜像的具体步骤_anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...