Главная  >  Документация  >  Статьи и инструкции  >  Использование Active Record

Статьи и инструкции: Использование Active Record

Что такое Active Record?


Active Record - это один из популярных способов доступа к данным, которые содержатся в Базе Данных сайта.

Использовать Active Record можно как в сниппетах так и в контроллерах и моделях.


Для использования Active Record в сниппете не нужно совершать никаких дополнительных действий, можно начать использовать методы сразу.


Для использования Active Record в контроллерах и моделях необходимо сначала установить соединение с БД, используя конструкцию:


$this->load->database();

Обычно это делается в конструкторе (__construct) - если речь идет о контроллере. Таким образом, в любой вашей модели, связанной с этим контроллером, не нужно будет производить каких-либо дополнительных действий и Active Record будет также доступен и там.



Все методы Active Record содержатся в объекте $this->db


Константы из руководства:

  • YOUR_QUERY - любой корректный SQL-запрос
  • DB_TABLE - таблица из вашей БД с которой идет взаимодействие
  • SELECT - строка с набором полей для выборки из БД


1) Выполнение произвольного SQL-запроса (необходимо в случае, если ни один из методов Active Record или SmartRiver вам не подходит и нужно написать что-то уникальное):


Стандартное выполнение 


$this->db->query(YOUR_QUERY);


Если необходимо получить массив данных (только для выборки)


$this->db->query(YOUR_QUERY)->result_array();


Если необходимо получить объект данных (только для выборки)


$this->db->query(YOUR_QUERY)->result();


Если необходимо получить одиночный объект (только для выборки)


$this->db->query(YOUR_QUERY)->row();



2) Получение скомпилированного запроса на добавление данных


$sql = $this->db->set($data)->get_compiled_insert(DB_TABLE);

$sql - полученная строка с запросом

$data - массив данных для вставки


 Чтобы выполнить полученный запрос, необходимо использовать метод из п.1, т.е $this->db->query($sql);


Получить ID только что созданного элемента можно с помощью метода $this->db->insert_id();



3) Получение скомпилированного запроса на обновление данных


$sql = $this->db->where($where)->set($data)->get_compiled_update(DB_TABLE);

$sql - полученная строка с запросом

$where - массив с условиями обновления

$data - массив данных для обновления


Чтобы выполнить полученный запрос, необходимо использовать метод из п.1, т.е $this->db->query($sql);



4) Непосредственное добавление записи


$this->db->insert(DB_TABLE, $data);

$data - массив данных для вставки


Получить ID только что созданного элемента можно с помощью метода $this->db->insert_id();



5) Непосредственное обновление записи


$this->db->where($where)->update(DB_TABLE, $data);

$where - массив с условиями обновления

$data - массив данных для обновления



6) Получение данных


массив данных


$this->db->where($where)->select(SELECT)->get(DB_TABLE)->result_array();


объект данных


$this->db->where($where)->select(SELECT)->get(DB_TABLE)->result();


одиночный объект


$this->db->where($where)->select(SELECT)->get(DB_TABLE)->row();



7) Удаление записи


$this->db->where($where)->delete(DB_TABLE);

$where - массив с условиями удаления


Более детальная информация о всех существующих методах Active Record текущей версии движка доступна по ссылке.

Была ли полезна для вас статья?

Мы используем файлы Cookie, чтобы сделать работу с сайтом проще и удобнее. Нажимая кнопку «Принять Cookie» или продолжая просмотр сайта, вы даете согласие на использование cookie и счетчика Яндекс.Метрика для обработки персональных данных. Более подробная информация тут

Cookies в CMS Smart Engine