ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建、更新、读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法。CURD操作通常是可以和连贯操作配合完成的。下面来分析下各自的用法:
(下面的CURD操作我们均以M方法创建模型实例来说明,因为不涉及到具体的业务逻辑)
(下面的CURD操作我们均以M方法创建模型实例来说明,因为不涉及到具体的业务逻辑)
2
创建(Create)
在ThinkPHP中使用add方法新增数据到数据库(而并不是create方法)。add 写入(新增)数据到数据库 | |
---|---|
用法 | add($data='',$options=array(),$replace=false) |
参数 | data(可选):要新增的数据,支持数组和对象,如果留空取当前数据对象 options(可选):操作表达式,通常由连贯操作完成,默认为空数组 replace(可选):是否允许写入时更新,默认为false(个别数据库支持) |
回调接口 | 写入前 _before_insert(&$data,$options) 写入成功 _after_insert($data,$options) |
返回值 | 如果数据非法或者查询错误则返回false 如果是自增主键 则返回主键值,否则返回1 |
相关方法 | 通常和data、create方法配合使用 |
- $User = M("User"); // 实例化User对象
- $data['name'] = 'ThinkPHP';
- $data['email'] = 'ThinkPHP@gmail.com';
- $User->add($data);
- $User->data($data)->add();
使用create方法的例子:
- $User = M("User"); // 实例化User对象
- // 根据表单提交的POST数据创建数据对象
- $User->create();
- $User->add(); // 根据条件保存修改的数据
从2.1版开始恢复了批量插入数据的addAll方法(仅针对Mysql数据库),如:
- $User->addAll($data)//当插入的数据是一个二维数组(例如对象的集合)的时候,可以使用此方法
- add($data='',$options=array(),$replace=false)
D('user')方法和M('user')方法的区别:
假如在app模块下面的lib目录中的model目录中新建了userModel.class.php这个文件,那么此时可以调用
D('user')这个方法,此时便是使用了user这个表,如果没有新建userModel.class.php这个文件,D('user')方法自动调用M('user')方法;