gauspican 发表于 2010-5-11 10:02:51

弱问,DB操作为什么要做成这么麻烦呢?

之前习惯了用$db->query(...),一条语句全部搞定。
现在要分成几条写,除了对输入变量做过滤外,还有其他什么好处吗?

Hex 发表于 2010-5-11 13:37:55

用不用 AR 完全是个人喜好。
AR 目前我认为最大的好处是隔离不同种类的数据库,再一个,可以让 SQL 语句更清晰,当然必要的转义,安全过滤肯定是有的。

当然,这只限于简单的 SQL 语句,复杂的 AR 也不支持。

燃雲 发表于 2010-5-12 07:39:18

主要是为了防止SQL injection。

gauspican 发表于 2010-5-12 10:19:39

引入hibernate一类操作DB的思路应该还是不错的,不过做来做去,框架就会越来越庞大了。。。

乌有 发表于 2010-5-18 09:47:52

事实上你现在一样也可以用$this->db->query()
正如Hex所说,给你多了一个操作类选择,用不用个人喜好.

spt119 发表于 2010-5-20 16:42:01

AR最大的作用是防SQL注入。
另外,AR,个人觉得最大的好处就是把SQL分开了,虽然多了一些代码,但条理能更清晰,debug时也更容易确定SQL错误地点。
AR也不完善,很多功能实现不了,如计数器+1操作。
推荐用AR

Hex 发表于 2010-5-21 09:57:51

回复 6# spt119


    计数器加1可以实现,请用关键字 update 搜索论坛。

乌有 发表于 2010-5-21 10:16:02

字段自加,用$this->db->set()的时候,后面加多一个参数FALSE...
如$this->db->set(字段,字段+1,FALSE)
觉得AR在单表查询上是挺方便的.复杂点的话就不便实现了.

oraclelee 发表于 2011-12-12 10:26:08


         $this->db->where('uid',$uid);
         $this->db->set('aa','aa+1',false);
         $this->db->update('table_name');

zhouli520 发表于 2011-12-12 13:06:13

AR唯一的问题我遇到的就是在where的时候他是不会判断int还是varchar转换成sql的时候一律都是给值添加'单引号',这样在匹配到sql的时候sql就会执行模糊查询了
页: [1] 2
查看完整版本: 弱问,DB操作为什么要做成这么麻烦呢?