TP中CURD操作
CURD操作
CURD操作也就是模型操作数据表的基本操作。C(Create)、U(Update)、R(Read)、D(Delete)操作就是增删改查操作。
6.1、增加操作
回想一下在mysql中增加操作使用的语法格式是:insert into语句。
在ThinkPHP中系统给我们封装好了模型中的方法,可以通过方法来实现数据的增加操作,这个方法叫做add方法:
$model -> add(一维数组);
一维数组要求必须是键值(关联)数组,键必须和数据表中字段名要匹配,如果不匹配则在增加的时候会被ThinkPHP过滤掉。
Add方法的返回值是新增记录的主键id。
案例:往部门表中使用add方法添加一条记录。

返回值:

补充:如果需要添加多个记录怎么去实现呢?
方法1:可以循环使用add方法;
方法2:可以使用另外一个方法addAll,语法:$model -> addAll(二维数组);
要求:最里面的那层数组也是关联数组(也要求键名字和数据表字段匹配),外层数组必须是下标从0开始的连续索引数组

上述的addAll方法使用起来需要注意的点太多,谨慎使用。
6.2、修改操作
在mysql中修改操作使用的是:update table语句。
在ThinkPHP中使用的是save方法,语法格式:
$model -> save(一维关联数组);
条件需要一维关联数组必须要有主键信息。如果没有主键信息,则相当于批量修改,在ThinkPHP中,系统为了防止误操作,不允许批量修改。
案例:使用save方法实现部门表中财务部门的信息。
如果没有指定主键信息,则返回值是false

返回false,表示修改操作并没有执行,而不是指mysql执行失败。
正常执行的结果:

返回值:
表示受到影响的行数:

6.3、查询操作
Mysql中查询操作使用的语法是:select语句。
在ThinkPHP中系统封装了方法可以直接用于查询:select方法、find方法。
Select方法语法:
$model -> select();表示查询全部的信息
$model -> select(id);表示查询指定id的信息
$model -> select(‘id1,id2,id3,id4….’);表示查询指定id集合的信息,等价于mysql中in语句
Find方法语法:
$model -> find(); 表示查询当前表中的第一条记录,相当于limit 1;
$model -> find(id);表示查询表中的指定id的记录;
返回值:
Select方法返回值是一个二维数组,即时查询的是一条记录返回也是二维数组;find返回值是一维数组。
案例:使用select方法和find方法查询部门表中的数据。

6.4、删除操作
在mysql中删除使用delete from语句。
在ThinkPHP中可以使用系统封装的方法delete方法:
$model -> delete(); //不能使用,删除方法必须要有条件,不能执行没有条件的删除
$model -> delete(id);删除指定id对应的记录
$model -> delete(‘id1,id2,id3….’);删除多个id对应的记录
关于删除的说明:
删除分为两种删除:物理删除、逻辑删除。
物理删除:是指真删除。
逻辑删除:是指假删除,本质是修改操作。在数据表中定义一个状态字段,比如说status,取值是0或者1,在查询的时候读取状态是1的;当用户点击删除之后触发修改操作,将状态从1修改成0。因为查询只查询状态是1的,所以0的就不会被显示在页面上。
案例:使用delete方法实现删除操作。

TP中CURD操作的更多相关文章
- TP框架中session操作
TP中session操作 查看代码,OMG! 不应该是这样的
- LINQ-to-SQL那点事~利用反射在LINQ-to-SQL环境中实现Ado.net的CURD操作
回到目录 对于linq to sql提供的CURD操作,给我们的感觉就是简单,容易使用,更加面向对象,不用拼SQL语句了,这些好处都表示在处理单条实体或者集合长度小的情况下,如果有一个1000条的集合 ...
- Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法
Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...
- MongoDB学习笔记~自己封装的Curd操作(按需更新的先决条件)
回到目录 我们上一讲中介绍了大叔封装的Mongo仓储,其中介绍了几个不错的curd操作,而对于按需更新内部子对象,它是有条件的,即你的子对象不能为null,也就是说,我们在建立主对象时,应该为子对象赋 ...
- Laravel框架数据库CURD操作、连贯操作使用方法
Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍. Laravel是一套简洁.优雅的PHP Web开 ...
- php对xml文件进行CURD操作
XML是一种数据存储.交换.表达的标准: - 存储:优势在于半结构化,可以自定义schema,相比关系型二维表,不用遵循第一范式(可以有嵌套关系): - 交换:可以通过schema实现异构数据集成: ...
- MongoDB的安装及CURD操作
MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据.我们选择64bit版进行下载. ...
- Laravel框架数据库CURD操作、连贯操作
这篇文章主要介绍了Laravel框架数据库CURD操作.连贯操作.链式操作总结,本文包含大量数据库操作常用方法,需要的朋友可以参考下 一.Selects 检索表中的所有行 $users = DB::t ...
- 一个简单的ORM制作(CURD操作类)
SQL执行类 CURD操作类 其他酱油类 此篇是为上篇文章填坑的,不知道上篇砸过来的砖头够不够,不够的话请大家继续砸. CURD操作类负责将用户提供的条件转换为SQL语句,并提供给IHelper执行, ...
随机推荐
- 2014年第五届蓝桥杯B组(C/C++)预赛题目及个人答案(欢迎指正)
参考:https://blog.csdn.net/qq_30076791/article/details/50573512 第3题: #include<bits/stdc++.h> usi ...
- postgresql 安装插件
最近由于工作需要,学习了citusdata 插件,在按照官方文档装好postgresql 之后,不能在psql 中正常启用其它插件 如 : "create extension pg_trg ...
- 20155231 2016-2017-2 《Java程序设计》第3周学习总结
20155231 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 学习目标 区分基本类型与类类型 理解对象的生成与引用的关系 掌握String类和数组 理解封 ...
- 20155310 2016-2017-2《Java程序设计》课程总结
20155310 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业一:对师生关系的看法以及对专业的期望 预备作业二:Learning by doin ...
- 学号20155311 2016-2017-2 《Java程序设计》第4周学习总结
教材学习内容总结 6.1 何谓继承 何谓继承 面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承,滥用继承而导致程序维护上的问题时有所闻.如何正确判断使用继承的时机, ...
- 2016-2017-2 《Java程序设计》第二周学习总结
20155319 2016-2017-2 <Java程序设计>第二周学习总结 课堂学习内容 git:版本控制 java -d bin(当地文件夹) src/Hello.java把生成的.c ...
- 考研编程练习----m叉树先序和后序所包含的情况
题目描述: We are all familiar with pre-order, in-order and post-order traversals of binary trees. A comm ...
- 【LG3235】 [HNOI2014]江南乐
题目描述 给出\(n\)堆石子, 每次可以选择将大于某个数\(f\)一堆平均分成多个堆, 最后不能操作的失败. 题解 10pts 直接爆搜即可. 70pts 像我们对这类题目的常规操作那样,将一整个局 ...
- 【LG3230】[HNOI2013]比赛
题面 洛谷 题解 代码 \(50pts\) #include<iostream> #include<cstdio> #include<cstdlib> #inclu ...
- Java 验证码识别库 Tess4j 学习
Java 验证码识别库 Tess4j 学习 [在用java的Jsoup做爬虫爬取数据时遇到了验证码识别的问题(基于maven),找了网上挺多的资料,发现Tess4j可以自动识别验证码,在这里简单记录下 ...