上善若水 发表于 2009-9-1 14:38:28

$this->db->query(); 算不算Active Record 类

ci 建议使用 Active Record;

因为以前 没怎么用过类 也没怎么用过框架, sql语句 一般自已写

如果用 $this->db->query();方法 基本上就是平滑过渡。

我需要改变习惯 用手册里的  Active Record方法不

visvoy 发表于 2009-9-1 14:44:14

query是AR父类的方法,AR是将语法编译成SQL,由query执行,query不算AR的语法

上善若水 发表于 2009-9-1 15:00:07

那 AR就是多执行了一步 我没有必要 非要用AR是吧

或者说AR是给用不好SQL的人 用的?

visvoy 发表于 2009-9-1 15:22:59

多AR可不是执行一步哦,如果追求运行效率就用query

Hex 发表于 2009-9-1 17:51:22

呵呵,用不用 AR 全凭自己喜好,CI 不会强制你做任何事情。

上善若水 发表于 2009-9-1 19:07:17

主要是 AR有什么优点 我刚查了一下

优点:可以自动使用 dbprefix 

别的暂时没看到。  暂时先用上吧,等以后在看有什么优点

Hex 发表于 2009-9-2 00:37:55

优点,就是不用写 SQL。隔离各个数据库之间的 SQL 差异。
CI 的 AR 不是 ORM,所以没有架构上的好处,呵呵。

上善若水 发表于 2009-9-2 06:41:06

感觉 隔离各个数据库之间的 SQL 差异  这个对大多数项目,没用

yinzhili 发表于 2009-9-2 08:30:00

本帖最后由 yinzhili 于 2009-9-2 08:31 编辑

我挺喜欢$this->db->query();这个方法,自己写SQL语句,还不太习惯用Active Record,我觉得自己直接写SQL有一个好处是维护起来比较方便、明了,一眼就能看出这段查询是做什么用的。不过如果为了可移植性好,用AR也是正确的选择,毕竟不同的数据库之间还是存在一点点SQL差异,用AR的话就可以轻松地迁移程序到不同的数据库下而不必大量修改代码。

visvoy 发表于 2009-9-2 08:30:56

当客户要求更换数据库的时候(mysql to mssql/oracle/etc),你不用改AR代码
页: [1] 2
查看完整版本: $this->db->query(); 算不算Active Record 类