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

 

$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-части запроса.

А "!=" в массиве

А "!=" в массиве для WHERE никак не осуществить? Или OR например? Только `ключ` = 'значение' он может обработать?

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

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

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

  • Allowed HTML tags: <em> <b> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <h2> <h3> <h4> <table> <tr> <td> <th>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

Подробнее о форматировании

CAPTCHA
Этот вопрос предназначен для того, чтобы отсеять ботов

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

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