用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4099|回复: 8
收起左侧

[讨论/交流] 关于使用Active Record 类

[复制链接]
发表于 2009-12-13 15:32:21 | 显示全部楼层 |阅读模式
注意: 你如果想要写自己的查询表达式,可以在数据库配置文件中禁止这个类。同时相比 Active Record,使用核心数据库类库和适配器将会使用更少资源。  这句话要怎么理解?


自己写查询表达式的意思是  ???
$sql="select * from tb";
$query= $this->db->query($sql);

这句话意思是用CI的类库比自己写表达式的要好?
发表于 2009-12-13 20:50:35 | 显示全部楼层
active record可以无缝移植,例如为mysql开发的app若要改为sql server,使用ar的话,数据库查询语句不需要更改,你如果直接写赤果果的select xxx from xxx limit x,x的语句就要修改了

所谓消耗资源,是因为使用ar要include一个近40KB的文件,势必要消耗点cpu时间
 楼主| 发表于 2009-12-13 22:09:55 | 显示全部楼层
那$query= $this->db->query($sql);
算用上了AR类吗?
发表于 2009-12-13 22:28:17 | 显示全部楼层
不算,query是db的方法,不用ar亦可使用,ar是db的子类,

直观一点讲就是:class ar extends db {}
发表于 2009-12-15 16:34:33 | 显示全部楼层
ar可以在mysql和mssql之间通用,但有个例外。
mysql的limit和mssql的top之间,在移植是,ar必须重新制定,否则报错。其他都可。
发表于 2009-12-15 17:24:45 | 显示全部楼层
mssql的limit要自己搞了,ci目前没有提供解决方案
发表于 2009-12-18 10:55:11 | 显示全部楼层
大家一起讨论
发表于 2009-12-22 15:01:54 | 显示全部楼层
如果你写的程序确定只使用MySQL,不担心数据库移植问题,那么用SQL语句是很好的,首先可读性好,如果看你的代码的人不熟悉AR的话,也能马上看懂你的代码。其次效率也稍微好一点。
用AR的好处大家都知道,首先是移植问题,还有就是安全问题(输入转义)。
发表于 2009-12-23 14:08:23 | 显示全部楼层
学习了。。。。。。。

本版积分规则