phalcon的model在执行update的时候会有多少纪录就执行多少条SQL,开发者的思想是?
//更新
$rs = Blog::find(array('id IN ( 1,2,3,4,5 )'));
$aSet = array(
'status' => 1,
);
$rs->update($aSet);
那么在SQL执行的时候会是这样
update blog set status=1 where id = 1
update blog set status=1 where id = 2
update blog set status=1 where id = 3
update blog set status=1 where id = 4
update blog set status=1 where id = 5
如果我更新的纪录包含了一万条,那他不是要执行一万条纪录?我在不少群里面咨询过大家,大家在phalcon基本上都是直接用sql
我在网上有查过英文资料,最后查到框架作者的相关回复大意是一个model就是一条纪录,如果更新多条纪录的话,其实就是更新多个model,为了保证model的完整性或是什么的,所以必须单独进行
我真不知道应该怎么理解作者的想法了
1 回答
![?](http://img1.sycdn.imooc.com/545869510001a20b02200220-100-100.jpg)
三国纷争
TA贡献1804条经验 获得超7个赞
官方文档有这么一句:
每个模型的实例对应一条数据表中的记录。可以方便的通过读取对象的属性来访问相应的数据。
我的理解是。
可以通过model类的结构来看,里面定义了表的字段为属性,通过实例化的model可以轻易地访问或者修改属性,比如User->id。所以model实例里面的属性应该都是相关联和绑定到一条数据的,不会出现一个model实例获取id时,可以有很多个id。而且geter/seter也是一个延伸。
以及,为什么会有find和findfirst呢?为什么是first不是all,只取一条?
这应该是一个对于model层的理解问题。
所以在涉及批量操作的时候,可以用其他的操作方式来搞,phalcon也提供了PHQL。
- 1 回答
- 0 关注
- 959 浏览
添加回答
举报
0/150
提交
取消