Функции помощника запросов
$this->db->insert_id()
Вернет insert ID — номер последней добавленной записи.
$this->db->affected_rows()
Вернет количество строк, задействованных в последнем «пишушем» запросе (insert, update и так далее).
Примечание: В MySQL "DELETE FROM TABLE" вернет 0 задействованных строк. Класс БД CodeIgniter имеет небольшой хак, который позволяет ему возвращать корректное количество. По умолчанию этот хак включен, но он может быть выключен в файле драйвера БД.
$this->db->count_all();
Позволяет вам определить количество строк в конкретной таблице. Передайте имя таблицы в первом параметре. Например:
echo $this->db->count_all('my_table');
// Вернет целое, например 25
$this->db->platform()
Вернет тип используемой платформы (MySQL, MS SQL, Postgres и т.д.):
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();
Эта функция упрощает процесс записи вставок (INSERT). Она возвращает корректно форматированную строку 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@example.com', 'example.com')
Примечание: Значения автоматически экранируются, для генерации более безопасных запросов.
$this->db->update_string();
Эта функция упрощает процесс обновления данных в БД (UPDATE). Она возвращает корректно сформированную строку 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 table_name SET name = 'Rick', email = 'rick@example.com', url = 'example.com' WHERE author_id = 1 AND status = 'active'
Примечание: Значения автоматически экранируются, для генерации более безопасных запросов.