TP中写操作数据的收集方法

来源:互联网 发布:linux查看配置文件 编辑:程序博客网 时间:2024/04/30 13:33

TP框架中,向数据库写的操作有多种,但要注意一点就是,调用这些方法,都是模型对象!


第一种操作:create()

$Model = D('User');$Model->create();    // 这里略过具体的自动生成和验证判断$Model->add();


第二种操作直接对数据对象赋值,例如:
$Model = M('User');$Model->name = '流年';$Model->email = 'thinkphp@qq.com';$Model->add();



第三种:通过data方法直接生成要操作的数据对象:
$Model = M('User');$data['name'] = '流年';$data['email'] = 'thinkphp@qq.com';$Model->data($data)->add();

注:如果我们同时使用create方法和data创建数据对象的话,则最后调用的方法有效。


data方法支持数组、对象和字符串,对象方式。


数组作为参数:(参考第三种方法)。
对象作为参数:
$Model = M('User');$obj = new stdClass;$obj->name = '流年';$obj->email = 'thinkphp@qq.com';$Model->data($obj)->add(); //以对象方式

字符串作为参数:
$Model = M('User');$data = 'name=流年&email=thinkphp@qq.com';$Model->data($data)->add();

当然,传递数组时,也可以直接把数组给add()方法
$Model = M('User');$data['name'] = '流年';$data['email'] = 'thinkphp@qq.com';$Model->add($data);//把数组参数给add()方法


Thinkphp中关于 data方法 不当当有收集数据作用,还有更新数据:
$Model = M('User');$data['id'] = 8;$data['name'] = '流年';$data['email'] = 'thinkphp@qq.com';$Model->data($data)->save();//把数组传给data(),然后执行更新save().


当然,以上代码,可以这样写更为简单:$Model->save($data);


注:说到save方法,则提醒一下;在这个方法执行时,要确保有条件语句,或是id值。即,在调用save方法更新数据的时候 会自动判断当前的数据对象里面是否有主键值存在,如果有的话才会自动作为更新条件。


data方法还可以用于读取当前的数据对象,例如:
$User = M('User');$map['name'] = '流年';$User->where($map)->find();// 读取当前数据对象$data = $User->data(); 

来源:TP手册

0 0