mysql 数据写入文件格式_数据写入
# 数据写入
[上一页](# "上一页")[下一页](# "下一页")
ThinkPHP的数据写入操作使用**add方法**,使用示例如下:
~~~
$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);
~~~
或者使用data方法连贯操作
~~~
$User = M("User"); // 实例化User对象
$User->data($data)->add();
~~~
如果在add之前已经创建数据对象的话(例如使用了create或者data方法),add方法就不需要再传入数据了。使用create方法的例子:
~~~
$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
if($User->create()){
$result = $User->add(); // 写入数据到数据库
if($result){
// 如果主键是自动增长型 成功后返回值就是最新插入的值
$insertId = $result;
}
}
~~~
> create方法并不算是连贯操作,因为其返回值可能是布尔值,所以必须要进行严格判断。
### 支持的连贯操作
在执行add方法之前,我们可以调用相关的连贯操作方法,配合完成数据写入操作。
写入操作支持的连贯操作方法包括:
| 连贯操作 | 作用 | 支持的参数类型 |
|-----|-----|-----|
| table | 用于定义要操作的数据表名称 | 字符串和数组 |
| data | 用于指定要写入的数据对象 | 数组和对象 |
| field | 用于定义要写入的字段 | 字符串和数组 |
| relation | 用于关联查询(需要关联模型支持) | 字符串 |
| validate | 用于数据自动验证 | 数组 |
| auto | 用于数据自动完成 | 数组 |
| filter | 用于数据过滤 | 字符串 |
| scope | 用于命名范围 | 字符串、数组 |
| bind | 用于数据绑定操作 | 数组 |
| token | 用于令牌验证 | 布尔值 |
| comment | 用于SQL注释 | 字符串 |
##### 字段过滤
如果写入了数据表中不存在的字段数据,则会被直接过滤,例如:
~~~
$data['name'] = 'thinkphp';
$data['email'] = 'thinkphp@gmail.com';
$data['test'] = 'test';
$User = M('User');
$User->data($data)->add();
~~~
其中test字段是不存在的,所以写入数据的时候会自动过滤掉。
> 在3.2.2版本以上,如果开启调试模式的话,则会抛出异常,提示:`非法数据对象:[test=>test]`
如果在add方法之前调用field方法,则表示只允许写入指定的字段数据,其他非法字段将会被过滤,例如:
~~~
$data['name'] = 'thinkphp';
$data['email'] = 'thinkphp@gmail.com';
$data['test'] = 'test';
$User = M('User');
$User->field('name')->data($data)->add();
~~~
最终只有name字段的数据被允许写入,email和test字段直接被过滤了,哪怕email也是数据表中的合法字段。
##### 字段内容过滤
通过filter方法可以对数据的值进行过滤处理,例如:
~~~
$data['name'] = 'thinkphp';
$data['email'] = 'thinkphp@gmail.com';
$User = M('User');
$User->data($data)->filter('strip_tags')->add();
~~~
写入数据库的时候会把name字段的值转化为`thinkphp`。
> filter方法的参数是一个回调类型,支持函数或者闭包定义。
### Mysql的特殊操作
如果是mysql数据库的话,系统还提供了针对Mysql的操作方法,包括批量插入数据和替换操作,如:
~~~
// 批量添加数据
$dataList[] = array('name'=>'thinkphp','email'=>'thinkphp@gamil.com');
$dataList[] = array('name'=>'onethink','email'=>'onethink@gamil.com');
$User->addAll($dataList);
~~~
同时在数据插入时允许更新操作:
~~~
add($data='',$options=array(),$replace=false)
~~~
其中add方法增加$replace参数(是否添加数据时允许覆盖),true表示覆盖,默认为false
[上一页](# "上一页")[下一页](# "下一页")
mysql 数据写入文件格式_数据写入相关推荐
- 数据图表可视化_数据可视化如何选择正确的图表第1部分
数据图表可视化 According to the World Economic Forum, the world produces 2.5 quintillion bytes of data ever ...
- mysql不能持久存储数据的是_数据持久化存储
一数据持久化存储-csv文件 1.作用 将爬取的数据存放到本地的csv文件中 2.使用流程 1.导入模块2.打开csv文件3.初始化写入对象4.写入数据(参数为列表)importcsv with op ...
- mysql 执行计划 改变_数据量增加导致mysql执行计划改变解决_MySQL
bitsCN.com 数据量增加导致mysql执行计划改变解决 收到运维同学电话,mysql服务器连接数满了,登录服务器查看,确实满了,好吧,首先增加连接数到2500,暂时提供对外服务.连接继续升高, ...
- mysql 数据割接_数据割接笔记
--exprot date from oracle exp tbcy/123456@TestB1 file=OM_chetian.dmp log=20.log tables=chey indexes= ...
- 数据预处理工具_数据预处理
数据预处理工具 As the title states this is the last project from Udacity Nanodegree. The goal of this proje ...
- 数据可视化工具_数据可视化
数据可视化工具 Visualizations are a great way to show the story that data wants to tell. However, not all v ...
- 数据分析师入门_数据分析师入门基础指南
数据分析师入门 Back in the summer of 2018, I was just starting my first internship as a Data Analyst. 早在201 ...
- 大数据平台蓝图_数据科学面试蓝图
大数据平台蓝图 1.组织是关键 (1. Organisation is Key) I've interviewed at Google (and DeepMind), Uber, Facebook, ...
- etl数据抽取工具_数据同步工具ETL、ELT傻傻分不清楚?3分钟看懂两者区别
什么是数据同步工具(ETL.ELT) 数据同步工具ETL或者ELT的作用是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决 ...
- 数据透视表和数据交叉表_数据透视表的数据提取
数据透视表和数据交叉表 Consider the data of healthcare drugs as provided in the excel sheet. The concept of piv ...
最新文章
- Postfix无法正常发送邮件故障的排除
- C语言库自带的二分查找函数bsearch函数的使用示例
- Spring 体系结构详解
- 解决burpsuite无法对DVWA环境(本地环境)进行抓包
- erp系统方案书_解决方案 |快普M8为系统集成企业定制的ERP系统
- python统计单词个数算法_统计一篇英文文章单词个数,取出出现频次前10的单词(Python实现)...
- gateway坑点:gateway有Controller时会直接处理对应的路径并返回
- [转载]基于Aaf的数据拆分
- 玩转SecureCRT 安装
- 【解题报告】SRM-08
- 气象数据源-要素、数据集、空间分辨率、网址
- 音视频开发系列(10):基于qt的音频推流
- SSRS 2012 高级图表类型 -- 圆饼图
- 最小和最大优先循环队列(C++)
- ssh 所选的用户密钥未在远程主机上注册
- 写点什么好呢2? 钱、事业、婚姻、人生意义
- 汽车的主要结构参数和性能参数
- 谷歌插件.crx文件无法安装
- 报考建行考计算机专业知识资料,建设银行信息技术类考试都考什么,有没有以前......
- Django实现用户管理