如果您需要以编程方式构建查询CodeIgniter的活动记录远比纯文本更加舒适,
$id = 2;
//with CodeIgniter's Active Record
$this->db->select('title, contents');
$this->db->from('data');
if(isset($id))
$this->db->where('id', $id);
//without CodeIgniter's Active Record
if(isset($id))
$where = " WHERE id = {$id}";
$this->db->query(" SELECT title, contents FROM data".$where);
好吧,这是不会改变那么多,但如果你对其中第10点的限制?
此外,CodeIgniter的活动记录根据您传递的数据以正确的方式构建字符串(使用占位符?
),即您不必在查询中手动插入'
。
编辑
@col。弹片说,与CodeIgniter的Active Record的任何好处,因为我不同意他的观点我尝试执行我的论文与另外一个例子:
让我们做一个例子INSERT语句:
$array = array('A'=>'aaaa','B'=>'bbbb','C'=>'cccc');
//without CodeIgniter's Active Record
$query = "INSERT INTO my_table (";
$query.= implode(',',array_keys($array)) .')';
$query.= ......
//with CodeIgniter's Active Record
$this->db->insert('my_table',$array);
来自不知道甚至是什么活动记录的人,似乎第二种方法引入了更少的错误,因为它不仅仅是一个大字符串。我个人喜欢阅读第二种方法。 – DMan
请注意,这是**不是** ActiveRecord。 CI们误称它。看到我的答案在这里:http://stackoverflow.com/questions/2480929/is-codeigniters-activerecord-resource-intensive/2480944#2480944 - 所以这个问题应该真的是:使用QueryBuilder的好处是什么? – Gordon
阅读说明书。 AR不仅仅需要输入多少内容。 http://codeigniter.com/user_guide/database/active_record.html – Peter