弱问,DB操作为什么要做成这么麻烦呢?
之前习惯了用$db->query(...),一条语句全部搞定。现在要分成几条写,除了对输入变量做过滤外,还有其他什么好处吗? 用不用 AR 完全是个人喜好。
AR 目前我认为最大的好处是隔离不同种类的数据库,再一个,可以让 SQL 语句更清晰,当然必要的转义,安全过滤肯定是有的。
当然,这只限于简单的 SQL 语句,复杂的 AR 也不支持。 主要是为了防止SQL injection。 引入hibernate一类操作DB的思路应该还是不错的,不过做来做去,框架就会越来越庞大了。。。 事实上你现在一样也可以用$this->db->query()
正如Hex所说,给你多了一个操作类选择,用不用个人喜好. AR最大的作用是防SQL注入。
另外,AR,个人觉得最大的好处就是把SQL分开了,虽然多了一些代码,但条理能更清晰,debug时也更容易确定SQL错误地点。
AR也不完善,很多功能实现不了,如计数器+1操作。
推荐用AR 回复 6# spt119
计数器加1可以实现,请用关键字 update 搜索论坛。 字段自加,用$this->db->set()的时候,后面加多一个参数FALSE...
如$this->db->set(字段,字段+1,FALSE)
觉得AR在单表查询上是挺方便的.复杂点的话就不便实现了.
$this->db->where('uid',$uid);
$this->db->set('aa','aa+1',false);
$this->db->update('table_name');
AR唯一的问题我遇到的就是在where的时候他是不会判断int还是varchar转换成sql的时候一律都是给值添加'单引号',这样在匹配到sql的时候sql就会执行模糊查询了
页:
[1]
2