前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >向表里写数据-create add

向表里写数据-create add

作者头像
PM吃瓜
发布2019-08-12 15:04:21
8320
发布2019-08-12 15:04:21
举报
文章被收录于专栏:PM吃瓜(公众号)PM吃瓜(公众号)

create就是一个处理数据的函数,处理提交上来的表单数据,完成高级模型的数据处理要求,返回处理好的数据.

create()方法用于创建数据对象,创建成功返回一个数组,失败返回一个false。因为在进行数据库操作(CRUD)之前,需要手动创建需要的数据

- create创建数据对象,并没有添加数据或者添加表,结果就是提交过来的键值对 - 创建完成后的数据可以直接读取或者修改利用$user->username - 保存在内存中,并没有实际写入到数据库中,直到使用add 或者save 方法才会真正写入数据库。 $user = M('User'); //--------直接create空,显示提交过来表单的数据,且默认为POST,接收get,create($_GET)但是create只获取数据库表与表单对应的信息,POST获取所有通过表中的字段名称与表单提交的名称对应关系自动封装数据实例

例如user表中有一个字段名叫"username",如果表单中有一个<input name="username" value="小明">,那么$User = M('User'); $data = $User->create(); echo $data['username'];就会输出"小明",不用你用$_POST['username']去接收

var_dump($user->create()); //--------数据覆盖 $data['username']='llicat'; $data['password']='123456'; var_dump($user->create($data)); //--------直接用_POST接收 $data['username']=$_POST['username']; $data['password']=$_POST['password']; $data['date']=date('Y-md H:i:s'); var_dump($user->create($data)); //--------手工获取数据,从对象创建新的数据对象 $data = new \stdClass(); $data->username = $_POST['username']; $data->password = $_POST['password']; $data->date = date('Y-md H:i:s'); var_dump($user->create($data)); //--------create俩个参数,第一个参数必须制定POST或者GET,第二个为操作,insert或者update //没指定第二个参数时,根据数据源是否包含主键判断修改或者新增,类似merge into var_dump($user->create($_GET)); var_dump($user->create($_POST, \Think\Model::MODEL_INSERT));

create()可以自动根据POST传递过来的数据创建数据对象,特别强调一下,必须得是POST方式传递过来的,其它方式不行

create()方法不只是创建数据对象,还完成了很多其它的工作,比如说令牌验证、自动映射、自动填充、自动验证等等!

//--------支持连贯操作field过滤、validate数据自动验证、auto数据自动完成、token令牌验证,与域有关 //限制字段 var_dump($user->field('username')->create());//只显示username //在模型中限制 $user = D('User'); var_dump($user->create());

如果只想简单的创建一个数据对象,即并不需要完成其它一些复杂的功能,可以是使用data()方法

- 使用data()方法创建数据对象是不会进行自动验证和自动过滤的,可以手动处理。但是在进行add()或save()操作的时候,数据表中不存在的字段以及非法的数据类型(例如对象、数组等非标量数据)是会自动过滤的

- 使用data()方法,是无法像create()那样自动根据$_POST来创建数据对象的,必须得手动将$_POST传入才行

//============数据写入===========

1.对create方法中创建的数据对象进行插入数据库。

$user = M('User'); $data['username']='heiheihei'; $data['password']='xixixi'; $user->add($data); //----------------------结合create $user = M("User"); //接收表单数据+创建的数据 $data = $user->create(); $data['date']=date('Y-m-d H:i:s'); $user->add($data); //----------------------连贯操作data,可以用于写入多个对象 $user->data($data)->add(); //或者可以用url格式 $data ='username=heiheihei&password=xixixi'; $user->data($data)->add();

2.可以进行数据中回调处理,类似于java中Spring框架的AOP思想,前提还是必须手动在Model文件夹中建立一个UserModel.class.php文件,在其中加入 // 插入数据前的回调方法 protected function _before_insert(&$data,$options) { } // 插入成功后的回调方法 protected function _after_insert($data,$options) { } 在插入之前做些什么在_before_insert中写自己的逻辑,在插入之后做些什么在_after_insert中写自己的逻辑。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档