hj_545 发表于 2009-12-13 15:32:21

关于使用Active Record 类

注意: 你如果想要写自己的查询表达式,可以在数据库配置文件中禁止这个类。同时相比 Active Record,使用核心数据库类库和适配器将会使用更少资源。这句话要怎么理解?


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

这句话意思是用CI的类库比自己写表达式的要好?

visvoy 发表于 2009-12-13 20:50:35

active record可以无缝移植,例如为mysql开发的app若要改为sql server,使用ar的话,数据库查询语句不需要更改,你如果直接写赤果果的select xxx from xxx limit x,x的语句就要修改了

所谓消耗资源,是因为使用ar要include一个近40KB的文件,势必要消耗点cpu时间

hj_545 发表于 2009-12-13 22:09:55

那$query= $this->db->query($sql);
算用上了AR类吗?

visvoy 发表于 2009-12-13 22:28:17

不算,query是db的方法,不用ar亦可使用,ar是db的子类,

直观一点讲就是:class ar extends db {}

spt119 发表于 2009-12-15 16:34:33

ar可以在mysql和mssql之间通用,但有个例外。
mysql的limit和mssql的top之间,在移植是,ar必须重新制定,否则报错。其他都可。

visvoy 发表于 2009-12-15 17:24:45

mssql的limit要自己搞了,ci目前没有提供解决方案

yunnysunny 发表于 2009-12-18 10:55:11

大家一起讨论

yinzhili 发表于 2009-12-22 15:01:54

如果你写的程序确定只使用MySQL,不担心数据库移植问题,那么用SQL语句是很好的,首先可读性好,如果看你的代码的人不熟悉AR的话,也能马上看懂你的代码。其次效率也稍微好一点。
用AR的好处大家都知道,首先是移植问题,还有就是安全问题(输入转义)。

yangball 发表于 2009-12-23 14:08:23

学习了。。。。。。。
页: [1]
查看完整版本: 关于使用Active Record 类