实例讲解ThinkPHP中的增删改查操作

发布时间 - 2023-04-21 00:00:00    点击率:

thinkphp是一款优秀的php框架,它的核心特点是轻量快速,以及强大的简化编程,提高开发效率。其中,最为重要的四个操作是增、删、改、查,也就是 crud,接下来将结合实际开发案例来介绍thinkphp中的增删改查操作。

一、增加

数据的新增是我们在ThinkPHP中使用最频繁的操作之一。在TP中,新增数据可以使用TP的model类库中的一个方法,通过实例化模型类来进行数据插入。以下是一个常规方法:

$data = [
    'name' => '张三',
    'age' => '18',
    'gender' => '男'
];
$model = new UserModel;
$res = $model->save($data);

这段代码的含义是向“User”表中写入一条数据,数据为name为‘张三’,age为‘18’,gender为‘男’。其中,UserModel是我们事先创建的模型文件,它继承了ThinkPHP的Model类,然后进行了相关设置和定义。save方法会返回布尔值,代表是否写入成功。

在实际开发中,我们经常会遇到一次性插入多条数据的情况。在TP中,我们可以使用TP提供的批量插入的方法,具体代码如下:

$data = [
    [
        'name' => '张三',
        'age' => '18',
        'gender' => '男'
    ],
    [
        'name' => '李四',
        'age' => '22',
        'gender' => '男'
    ],
    [
        'name' => 'Lucy',
        'age' => '20',
        'gender' => '女'
    ]
];
$model = new UserModel;
$res = $model->saveAll($data);

二、删除

数据的删除是我们在后台管理系统中经常遇到的操作之一。在TP中,删除数据也是通过模型类来实现的。我们可以使用delete方法来删除一条或者多条数据。delete方法的使用方式可以是直接通过主键来操作,也可以是使用条件(也就是where)来筛选数据。

// 删除一条数据
$model = new UserModel;
$res = $model->where(['id' => 1])->delete();

// 删除多条数据
$model = new UserModel;
$ids = '1,2,3';
$res = $model->where(['id' => ['in', $ids]])->delete();

以上代码的含义是从User表中删除id为1的数据,或者删除id为1、2、3的数据。

三、修改

数据的修改是我们进行业务逻辑处理时常常用到的操作。TP提供了update方法来实现数据的修改。update方法也可以直接通过主键来操作,也可以使用条件来筛选数据。

// 修改一条数据
$model = new UserModel;
$data = [
    'name' => '张三',
    'age' => '20',
    'gender' => '男'
];
$res = $model->where(['id' => 1])->update($data);

// 修改多条数据
$model = new UserModel;
$data = [
    'gender' => '女'
];
$ids = '2,3,4';
$res = $model->where(['id' => ['in', $ids]])->update($data);

以上代码是将User表中id为1的数据的name改为‘张三’,age改为‘20’,gender改为‘男’。而后段代码的含义是将id为2、3、4的数据的gender改为‘女’。

四、查询

数据的查询是我们最常用的操作之一。在TP中,我们可以使用model里的select方法、find方法、getField方法等方法进行数据的查询。常用的查询方式如下:

// 查询所有数据
$model = new UserModel;
$res = $model->select();

// 查询一条数据
$model = new UserModel;
$res = $model->where(['id' => 1])->find();

//查询指定字段
$model = new UserModel;
$res = $model->getField('id,name,age');

以上代码的含义是查询User表中的所有数据,或者查询id为1的数据,或者查询id、name和age字段。这里需要注意的是,在使用getField方法时,返回的结果是一个以id为key,name、age为value的数组。若要修改key或修改以其他字段为value,需要通过tp的数组函数进行加工处理。

总结:

综上所述,CRUD在TP中是一个非常常见的操作。掌握这四个操作可以使我们更加方便快捷地进行后台业务逻辑处理。当然,TP针对这几个操作还有其他更多的方法,希望大家在学习过程中能够进一步探究,并深入理解其底层原理。毕竟,掌握好增删改查,才是真的能够把TP运用到到极致的关键。


# 可以使用  # 多条  # 是一个  # 后段  # 来实现  # 的是  # 主键  # 才是  # 是从  # 这段 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 阿里云网站搭建费用解析:服务器价格与建站成本优化指南  教你用AI润色文章,让你的文字表达更专业  如何在万网ECS上快速搭建专属网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何在IIS7上新建站点并设置安全权限?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  java获取注册ip实例  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  想要更高端的建设网站,这些原则一定要坚持!  零基础网站服务器架设实战:轻量应用与域名解析配置指南  香港服务器网站卡顿?如何解决网络延迟与负载问题?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  如何彻底卸载建站之星软件?  如何续费美橙建站之星域名及服务?  JavaScript如何实现倒计时_时间函数如何精确控制  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何在万网自助建站中设置域名及备案?  如何获取上海专业网站定制建站电话?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  详解Android中Activity的四大启动模式实验简述  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何登录建站主机?访问步骤全解析  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  php 三元运算符实例详细介绍  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  高端建站三要素:定制模板、企业官网与响应式设计优化  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  js代码实现下拉菜单【推荐】  浅析上传头像示例及其注意事项  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  七夕网站制作视频,七夕大促活动怎么报名?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  JavaScript Ajax实现异步通信  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Java解压缩zip - 解压缩多个文件或文件夹实例  如何在IIS服务器上快速部署高效网站?  Android中AutoCompleteTextView自动提示  如何挑选最适合建站的高性能VPS主机?  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel如何实现本地化和多语言支持?(i18n教程)