第 39 章 ThinkPHP--CURD 操作

学习ThinkPHP 模型中的 CURD 操作,也就是增删改查。通过 CURD, 我们可以方便快速的对数据库进行操作。

1.数据创建 2.数据写入 3.数据读取 4.数据更新 5.数据删除

一.数据创建 在数据库添加等操作之前,我们首先需要对数据进行创建。何为数据创建,就是接受提 交过来的数据,比如表单提交的 POST(默认)数据。接受到数据后,还可以对数据进行有 效的验证、完成、生成等工作。

//根据表单提交的POST数据,创建数据对象 $user = M(‘User‘); var_dump($user->create()); PS:这里 create()方法就是数据创建,数据的结果就是提交的 POST 数据的键值对。

特别注意的是:提交过来的字段和数据表字段是对应的,否则无法解析。

//通过数组手工获取数据,覆盖提交的 $user = M(‘User‘); $data[‘user‘] = $_POST[‘user‘]; $data[‘email‘] = $_POST[‘email‘]; $data[‘date‘] = date(‘Y-m-d H:i:s‘);

//和数据表对应,否则无效 var_dump($user->create($data));

//通过对象手工获取数据,覆盖提交的 $user = M(‘User‘); $data = new \stdClass(); $data->user = $_POST[‘user‘]; $data->email = $_POST[‘email‘]; $data->date = date(‘Y-m-d H:i:s‘); var_dump($user->create($data));

//默认是$_POST,传递$_GET修改 $user = M(‘User‘); var_dump($user->create($_GET)); create()方法可以传递第二个参数,将要操作的模式,有两种:Model::MODEL_INSERT 和 Model::MODEL_UPDATE,即新增和修改。当没有指定的时候,系统会根据数据源是否包 含主键来自动判断,如果包含主键,则就是修改操作。

//设置将要新增操作 $user = M(‘User‘); var_dump($user->create($_POST, Model::MODEL_INSERT));

create()方法的内部工作分为 9 步:

1.获取数据源(默认是 POST);

2.验证数据合法性(非数据或对象会过滤),失败则返回 false;

3.检查字段映射;

4.判断数据状态(新增还是修改);

5.数据自动验证,失败则返回 false;

6.表单令牌验证,失败则返回 false;

7.表单数据赋值(过滤非法字段和字符串处理);

8.数据自动完成;

9.生成数据对象(保存在内存)。

create()方法可以配合连贯操作配合数据创建,支持的连贯操作有: 1.field,用于定义合法的字段; 2.validate,用于数据自动验证; 3.auto,用于数据自动完成; 4.token,用于令牌验证。 //限制可操作的字段 $user = M(‘User‘); var_dump($user->field(‘user‘)->create()); //在模型类里限制字段 class UserModel extends Model { protected $insertFields = ‘user‘; protected $updateFields = ‘user‘; }

二.数据写入 数据写入使用的是 add()方法。

//新增一条数据 $user = M(‘User‘); $data[‘user‘] = ‘李炎恢‘; $data[‘email‘] = ‘[email protected]‘; $data[‘date‘] = date(‘Y-m-d H:i:s‘); $user->add($data);

//结合create()方法 $user = M(‘User‘); $data = $user->create(); $data[‘date‘] = date(‘Y-m-d H:i:s‘); $user->add($data); add()方法支持的连贯操作有:

1.table,定义数据表名称;

2.data,指定要写入的数据对象;

3.field,定义要写入的字段;

4.relation,关联查询;

5.validate,数据自动验证;

6.auto,数据自动完成;

7.filter,数据过滤;

8.scope*,命名范围;

9.bind,数据绑定操作;

10.token,令牌验证;

11.comment,SQL 注释; //使用data连贯方法 $user = M(‘User‘); $data = $user->create(); $data[‘date‘] = date(‘Y-m-d H:i:s‘); $user->data($data)->add(); //data连贯方法 支持字符串、数组、对象 $user = M(‘User‘); $data = ‘user=星矢&[email protected]&date=‘.date(‘Y-m-d H:i:s‘); $user->data($data)->add();

时间: 2024-11-02 08:06:37

第 39 章 ThinkPHP--CURD 操作的相关文章

第 39 章 ThinkPHP--SQL 连贯操作

本节课,我们将学习 ThinkPHP 模型基础类提供的连贯操作,通过连贯操作可以有效的 提供数据存取的代码清晰度和开发效率,并且支持所有的 CURD 操作. 一.连贯入门 连贯操作使用起来非常简单,比如查找到 id 为 1,2,3,4 中按照创建时间的倒序的前两 位. //连贯操作入门 $user = M('User'); var_dump($user->where('id in (1,2,3,4)')->order('date DESC')->limit(2)->select()

ThinkPHP CURD操作

ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建.更新.读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法.CURD操作通常是可以和连贯操作配合完成的.下面来分析下各自的用法: (下面的CURD操作我们均以M方法创建模型实例来说明,因为不涉及到具体的业务逻辑) 创建(Create) 在ThinkPHP中使用add方法新增数据到数据库(而并不是create方法). add  写入(新增)数据到数据库 用法 add($d

thinkphp对mysql的CURD操作

利用thinkphp(3.2.3)来操作数据库,首先要连接数据库.我们需要对某数据库写一个配置文件,thinkphp会根据该配置文件自动连接上数据库.而model文件就不用自定义,内置的即可解决问题.配置文件写于目录application\home\conf\config.php下: <?php return array( //'配置项'=>'配置值' 'DB_TYPE'=> 'mysql',//数据库类型 'DB_HOST'=> '127.0.0.1',//服务器地址 'DB_N

C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(上)

译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 and .NET Core 1.0>.水平有限,各位阅读时仔细分辨,唯望莫误人子弟. 附英文版原文:Professional C# 6 and .NET Core 1.0 - Chapter 39 Windows Services --------------------------------

php对xml文件进行CURD操作

XML是一种数据存储.交换.表达的标准: - 存储:优势在于半结构化,可以自定义schema,相比关系型二维表,不用遵循第一范式(可以有嵌套关系): - 交换:可以通过schema实现异构数据集成: - 表达:本身就可以作为阅读文档,当然还可以使用XSLT之类的进行解析和再显示. 缺点是schema验证复杂,相比后来的json等格式,相对冗余. 下面的是利用php对xml文件进行CURD操作: xml文件的格式为: 1 <?xml version="1.0" encoding=&

ThinkPHP CURD方法中field方法详解

导读:ThinkPHP CURD方法的field方法属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作. 1.用于查询在查询操作中field方法是使用最频繁的.$Model->field('id,title,content')->select(); 这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值.执行的SQL相当于:SELECT id,title,content FROM table 当然,除了select方法之外

ThinkPHP3.2基础教程(19)--模型-CURD操作-数据创建

ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建.更新.读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法. CURD操作通常是可以和连贯操作配合完成的. 数据创建 在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据: // 获取表单的POST数据 $data['name'] = $_POST['name']; $data['email'] = $_POST['email']; // 更多的表

ThinkPHP CURD方法盘点:field方法

ThinkPHP的CURD操作中有很多非常实用的方法,从这篇开始,我们会为大家一一介绍. 首先为大家介绍下field方法的用法.field属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作. 1.用于查询 在查询操作中field方法是使用最频繁的. $Model->field('id,title,content')->select(); 这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值.执行的SQL相当于: SELE

thinkphp curd的事务回滚 一看就会

/** *thinkphp数据库的事务回滚例子 *这一般用在多表操作,比如: (1)订单表和其他订单关联信息,删除订单同时也要把订单关联表中的信息删掉,如果说删除了订单表结果在删除订单关联信息表时出现问题,也就是说,订单的关联信息没有删掉,这时就会出现信息不对应,甚至信息的冗余,这时采用事务回滚,如果一个没有删掉,之前的也要回滚,保持记录的对应统一 (2)银行打钱,如果A给B打钱,给Binsert成功了,但是Adelete失败,这时银行就亏大了,明白?此时就要回滚,如果两者其中一者不成立,则都复