创建数据create
来源:互联网 发布:模型数据化 编辑:程序博客网 时间:2024/05/16 16:13
6.10 创建数据
在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据:
很简单的例子:
- // 获取表单的POST数据
- $data['name'] = $_POST['name'];
- $data['email'] = $_POST['email'];
- // 更多的表单数据值获取
- //……
很简单的例子:
- // 实例化User模型
- $User = M('User');
- // 根据表单提交的POST数据创建数据对象
- $User->create();
- // 把创建的数据对象写入数据库
- $User->add();
- $data['name'] = 'ThinkPHP';
- $data['email'] = 'ThinkPHP@gmail.com';
- $User->create($data);
- // 从User数据对象创建新的Member数据对象
- $User = M("User");
- $User->find(1);
- $Member = M("Member");
- $Member->create($User);
2
而事实上,create方法所做的工作远非这么简单,在创建数据对象的同时,完成了一系列的工作,我们来看下create方法的工作流程就能明白:步骤 说明 返回 1获取数据源(默认是POST数组) 2验证数据源合法性(非数组或者对象会过滤)失败则返回false3检查字段映射 4判断提交状态(新增或者编辑 根据主键自动判断) 5数据自动验证失败则返回false6表单令牌验证失败则返回false7表单数据赋值(过滤非法字段和字符串处理) 8数据自动完成 9生成数据对象(保存在内存) 因此,我们熟悉的令牌验证、自动验证和自动完成(我们会在后面看到相关的用法)功能,其实都必须通过create方法才能生效。Create方法创建的数据对象是保存在内存中,并没有实际写入到数据库中,直到使用add或者save方法才会真正写入数据库。
因此在没有调用add或者save方法之前,我们都可以改变create方法创建的数据对象,例如:
使用如下:
安全提示:因此在没有调用add或者save方法之前,我们都可以改变create方法创建的数据对象,例如:
- $User = M('User');
- $User->create(); //创建User数据对象
- $User->status = 1; // 设置默认的用户状态
- $User->create_time = time(); // 设置用户的创建时间
- $User->add(); // 把用户对象写入数据库
使用如下:
- // 实例化User模型
- $User = M('User');
- // 创建数据后写入到数据库
- $data['name'] = 'ThinkPHP';
- $data['email'] = 'ThinkPHP@gmail.com';
- $User->data($data)->add();
2
create方法如果没有传值,默认取$_POST数据,如果用户提交的变量内容,含有可执行的html代码,请进行手工过滤。
- $_POST['title'] = "<script>alert(1);</script>";
- $_POST['title'] = htmlspecialchars($_POST['title']);
- M('User')->create();
- $data['title'] = $this->_post('title', 'htmlspecialchars');
- M('User')->create($data);
- 创建数据create
- impdp create index parallel-数据泵并行创建索引
- create database 创建数据库
- create table 创建表
- 创建对象Object.Create
- CREATE语句创建表
- 创建数据库Create
- DDL(数据定义语言)-- 创建create、删除drop和修改alter数据库对象
- kendo ui grid 创建一行数据多次添加(kendo ui grid datasource multiple create)
- Create方式创建MediaPlayer与setDataSource加载音乐数据进度条设置的差异3
- MySQL数据定义语句:CREATE(创建)命令、ALTER(修改)命令、DROP(删除)
- HANA学院(1)-创建数据服务存储库 (Create data services repository)
- MySQL--操作简记(create创建操纵表、insert插入、update更新、delete删除数据)
- 用create database创建数据库
- svg 创建文本 create text
- sc create----创建系统服务
- 用CREATE DATABASE创建表
- 数据库创建 create database《一》
- 求教无向网络两点间经过必经点的算法
- OS中类和对象还有,nil/Nil/NULL的区别
- 3DES加密解密的工具类
- JAVA备份还原Oracle数据库
- 批处理设计知识
- 创建数据create
- sql server 2000安装挂起解决方案
- 提高知识型组织生产力
- Basic knowledge you should __allways__ keep in mind !!!
- 用SDL库播放yuy2 Packed mode
- IOS内存nil与release的区别
- hadoop eclipse plugin 自编译
- 函数指针(更高级)
- 二进制、八进制、十进制、十六进制之间转换