Работа с БД: вспомогательные функции

 

$this->db->insert_id()

Возворащает идентификатор вставленной записи после выполнения команды.

$this->db->affected_rows()

Возвращает количество затронутых строк при выполнении команды на изменение данных.

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

$this->db->count_all();

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

  1. echo $this->db->count_all('my_table');
  2.  
  3. // Выводится целое число, к примеру, 25

$this->db->platform()

Возвращает название платформы, которая используется (MySQL, MS SQL, Postgres и т.п.)

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

$this->db->version()

Возвращает испольуземую версию БД:

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

$this->db->last_query();

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

  1. $str = $this->db->last_query();
  2.  
  3. // Будет получено к примеру: SELECT * FROM sometable....

Следующие функции помогают упростить процесс написания команд вставки и изменения данных.

$this->db->insert_string();

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

  1. $data = array('name' => $name, 'email' => $email, 'url' => $url);
  2.  
  3. $str = $this->db->insert_string('table_name', $data);

Первый параметр - имя таблицы, второй - ассоциативный массив содержащий данные для вставки. В пример выше будет получена следующая строка:
  1. INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@your-site.com', 'www.your-site.com')

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

$this->db->update_string();

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

  1. $data = array('name' => $name, 'email' => $email, 'url' => $url);
  2.  
  3. $where = "author_id = 1 AND status = 'active'";
  4.  
  5. $str = $this->db->update_string('table_name', $data, $where);

Первый параметр - имя таблицы, второй - ассоциативный массив данных для изменения, третий - условие для выборки (where). В приведенном выше примере будет получена следующая строка:
  1. UPDATE table_name SET name = 'Rick', email = 'rick@your-site.com', url = 'www.your-site.com' WHERE author_id = 1 AND status = 'active'

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

author_id = 1 AND status =

author_id = 1 AND status = 'active'
а если необходимо вставить
author_id = ".$author_id." AND status = 'active'
на эту часть экранирование распространяется? или только на вставляемые данные?

тогда пишем

тогда пишем так:
$data = array(....)
$where = array('author'=>$author_id,'status'=>'active');

CodeIgniter поддерживает как строку так и массив для указания where-части запроса.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

CAPTCHA
Этот вопрос предназначен для того, чтобы отсеять ботов
3 + 0 =
Решите простой математический пример и введите результат. К примеру, для вопроса 1+3 нужно ввести 4

Вход в систему

Последние комментарии