CodeIgniter, руководство пользователя к версии 1.6.1


Функции хелпера запросов

$this->db->insert_id()

Идентификатор последней вставки записи в базу данных.

$this->db->affected_rows()

Отображает количество записей, на которые повлиял запрос (при выполнении вставок или правок).

Замечание: в MySQL "DELETE FROM TABLE" возвращает 0 затронутых строк. В класс для работы с базами данных встроен небольшой модификатор, который позволяет возвращать правильное количество затронутых записей. По умолчанию этот модификатор доступен, но может быть выключен в файле драйвера к базе данных.

$this->db->count_all();

Позволяет определять количество строк в конкретной таблице. Передавайте название таблицы в качестве первого параметра. Пример:

echo $this->db->count_all('my_table');

// Возвращает целое число, к примеру 25

$this->db->platform()

Выводит наименование платформы СУБД, с которой вы взаимодействуете (MySQL, MS SQL, Postgre, и т.д.):

echo $this->db->platform();

$this->db->version()

Выводит версию используемой СУБД:

echo $this->db->version();

$this->db->last_query();

Возвращает последний выполненый запрос (строку запроса, но не объект с результатами). Пример:

$str = $this->db->last_query();

// Создаёт: SELECT * FROM sometable....

Две следующие функции помогут упростить процесс записи в базу данных (INSERT и UPDATE).

$this->db->insert_string();

Функция позволяет упростить процесс выполнения вставок. Возвращает корректно сформированую строку SQL-запроса на вставку. Пример:

$data = array('name' => $name, 'email' => $email, 'url' => $url);

$str = $this->db->insert_string('table_name', $data);

Первый параметр - наименование таблицы, второй параметр - ассоциативный массив с данными для вставки. Предыдущий пример создаёт:

INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@your-site.com', 'www.your-site.com')

Замечание: Значения автоматически экранируются, создавая более безопасные запросы.

$this->db->update_string();

Данная функция упрощает процесс записи правок к данным. Она возвращает корректно сформированый SQL-запрос на выполнение правки. Пример:

$data = array('name' => $name, 'email' => $email, 'url' => $url);

$where = "author_id = 1 AND status = 'active'";

$str = $this->db->update_string('table_name', $data, $where);

Первый параметр - наименование таблицы, второй параметр - ассоциативный массив с данными для вставки и в третьем параметре указано условие "where". Предыдущий пример приводит к результату:

UPDATE exp_weblog SET name = 'Rick', email = 'rick@your-site.com', url = 'www.your-site.com' WHERE author_id = 1 AND status = 'active'

Замечание: Значения автоматически экранируются, создавая более безопасные запросы.