php - phalcon的model在执行update的时候会有多少纪录就执行多少条SQL,开发者的思想是?

查看:136
本文介绍了php - phalcon的model在执行update的时候会有多少纪录就执行多少条SQL,开发者的思想是?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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的完整性或是什么的,所以必须单独进行

我真不知道应该怎么理解作者的想法了

解决方案

官方文档有这么一句:

每个模型的实例对应一条数据表中的记录。可以方便的通过读取对象的属性来访问相应的数据。

我的理解是。
可以通过model类的结构来看,里面定义了表的字段为属性,通过实例化的model可以轻易地访问或者修改属性,比如User->id。所以model实例里面的属性应该都是相关联和绑定到一条数据的,不会出现一个model实例获取id时,可以有很多个id。而且geter/seter也是一个延伸。
以及,为什么会有find和findfirst呢?为什么是first不是all,只取一条?

这应该是一个对于model层的理解问题。
所以在涉及批量操作的时候,可以用其他的操作方式来搞,phalcon也提供了PHQL。

这篇关于php - phalcon的model在执行update的时候会有多少纪录就执行多少条SQL,开发者的思想是?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆