六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 55|回复: 0

TP Model 修改和查询数据

[复制链接]

升级  13.33%

20

主题

20

主题

20

主题

秀才

Rank: 2

积分
70
 楼主| 发表于 2013-1-1 22:11:58 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">TP Model 修改一条数据
===Model 修改一条数据===
方法:save()
传参:
1、$data=array() ;数组与表的各列要对应
2、$options=array();  如:where,order,limit,group
$options 是一个数组,存放sql查询条件的数组,如$options['where'],$options['order'],$options['limit']
===Model 查询数据===
类似于ORM与AR的关系
$options数组可以传递查询的参数
$model->where()->order()->limit()->select(); 方法也可以传递查询的参数
$model->select($options);   其中,$options可以是:
1、数字,则按主键=数字来查询
2、字符串,也是按主键来查询,会根据‘,’进行分割多个主键的值,用in来查询
如何用连贯操作?
$model->where('user_id=5')====>$model->__call('where','user_id=5')====>$model->options['where']='user_id=5';

如上:连贯操作就是调用魔术方法,分别把查询参数如where,order,limit,储存到$this->options属性中 。
====当删,改,查的时候,如何分析参数====
_parseOptions函数来分析sql查询的条件
array_merge($this->options,$options); 即把$this->options属性的数组与参数$options数组合并,如果$options里有['order'],$this->options里也有order,则以$options为准,因为由于array_merge函数的特性,合并数组时如有键名相同,后盖前,因此,连贯操作时,到最后又手动插入了$options选项,则$options选项与连贯操作形成的查询选项合并,如果选项冲突,$options优先级比连贯操作优先级高
====删除数据====
$model->delete()方法
====如何只取一条数据====
$model->find()方法:因为find方法对$options添加了'limit'=1选项,其余和select()方法一样
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表