Если вам нужно программно построить запрос, активные записи 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 ограничений наусловие?
Более того, Active Record CodeIgniter создает строку правильным образом (с заполнителями ?
) в соответствии с данными, которые вы передаете, т.е. вам не нужно будет вставлять '
вручную в запрос.
РЕДАКТИРОВАТЬ
@ Col.Шрапнель сказал, что с Active Record CodeIgniter нет никаких преимуществ, так как я не согласен с ним, я пытаюсь закрепить свой тезис на другом примере:
Давайте сделаем пример для оператора 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);