如果您需要以編程方式構建查詢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