ThinkPHP CURD操作与高级查询技巧详解
188 浏览量
更新于2024-08-31
收藏 42KB PDF 举报
ThinkPHP是一个广泛使用的PHP开发框架,本文将详细介绍如何在该框架中进行CRUD(Create, Read, Update, Delete)操作以及几种查询方式。首先,我们从数据的读取开始:
1. **读取数据(Read)**
- 使用`M()`或`newModel()`初始化模型对象,然后通过`select()`方法获取所有数据,返回的是一个数组。
- `find()`方法用于获取单条数据,传入指定的ID作为参数。
- 如果需要获取单个字段的值,可以使用`getField()`方法,配合`where()`条件,如`$m->where('id=2')->getField('username')`。
**重点**:
- 数据创建(Create):
- 使用`M()`或`newModel()`实例化模型后,可以直接设置字段和值,然后调用`add()`方法,返回值为新插入数据的ID。
**删除数据(Delete)**:
- 直接调用`delete()`方法并传入要删除的记录ID,或者使用`where()`筛选后再删除。
- 返回值为受影响的行数。
**更新数据(Update)**:
- 同样通过`M()`或`newModel()`实例化模型,定义要更新的数据,存储在一个关联数组`$data`中,设置好要修改的字段和新值。
- 调用`save()`方法执行更新操作,返回值为受影响的行数。
接下来是ThinkPHP的几种查询方式:
**普通查询方式**:
- 使用`where()`方法结合字符串(如`$m->where("sex=0 and username='gege'")->find();"`)或关联数组(`$data['sex'] = 0; $data['username'] = 'gege'; $arr = $m->where($data)->find();`),默认逻辑为AND,若需OR逻辑,需设置`_logic`数组值为'or'。
**表达式查询方式**:
- 使用数组语法,如`$data['id'] = array('egt', 10)`来表达等大于(egt)关系,更灵活地构建复杂的查询条件。
**区间查询**:
- 通过数组传递起止范围,如`$m->where('id BETWEEN 1 AND 10')`,用于执行区间查询。
**统计查询**:
- 对数据库中的数据进行计数、求和、平均值等统计,可能涉及聚合函数如COUNT(), SUM(), AVG()等。
**SQL直接查询**:
- 在特定情况下,可以直接使用原生SQL语句,通过`$m->query()`方法执行,例如`$sql = 'SELECT * FROM user WHERE id = 1'; $result = $m->query($sql);`。
总结来说,ThinkPHP提供了简洁的接口封装了底层的数据库操作,使得开发者能够轻松地处理数据增删改查和高级查询,提升开发效率。了解这些基础操作和查询方式后,你可以根据项目需求进一步探索ThinkPHP的更多功能。
2015-08-27 上传
2015-09-30 上传
2020-12-18 上传
2020-10-25 上传
2020-10-25 上传
2020-10-25 上传
2020-12-18 上传
2020-10-25 上传
2020-10-25 上传
weixin_38704156
- 粉丝: 6
- 资源: 909
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器