Класс конструктора запросов (Query Builder) 

CodeIgniter дает вам доступ к классу конструктора запросов. Этот шаблон позволяет информации в базе данных быть обработанной вставкой и обновлением с минимальными трудозатратами. В некоторых случаях достаточно только одной или двух строк код для выполнения действий в базе. CodeIgniter не требует, чтобы каждая таблица базы данных имела свой собственный файл класса. Вместо этого он обеспечивает более упрощенный интерфейс.

Помимо простоты, основное преимущество использования конструктора запросов заключается в том, что он позволяет создавать независимые приложения баз данных, так как синтаксис запроса создается для каждого адаптера базы данных. Он также позволяет создание более безопасных запросов, поскольку значения экранируются системой автоматически.

Примечание

Если вы собираетесь писать свои собственные запросы, то вы можете отключить этот класс в файле конфигурации базы данных, позволяя ядру базы данных и адаптеру использовать меньше ресурсов.

Выборка данных 

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

$this->db->get()

Выполняет запрос и возвращает результат. Может использоваться сама по себе для получения всех записей из таблицы:

$query = $this->db->get('mytable');  // Производит: SELECT * FROM mytable

Второй и третий параметры позволяют установить лимит и смещение:

$query = $this->db->get('mytable', 10, 20);

// Выполняет: SELECT * FROM mytable LIMIT 20, 10
// (в MySQL. Другие базы данных имеют немного другой синтаксис)

Вы заметите, что вышеупомянутые функции присваиваются переменной $query, которая может быть использована для отображения результатов:

$query = $this->db->get('mytable');

foreach ($query->result() as $row)
{
        echo $row->title;
}

Пожалуйста, посетите страницу формирование результатов запроса для всестороннего обсуждения по поводу генерации результата.

$this->db->get_compiled_select()

Составляет выборки как $this->db->get(), но НЕ выполняет запрос. Этот метод просто возвращает SQL-запрос в виде строки.

Пример:

$sql = $this->db->get_compiled_select('mytable');
echo $sql;

// Выводит строку: SELECT * FROM mytable

Второй параметр позволяет задать, будет ли сброшен запрос конструктора запросов (по умолчанию он будет сброшен, как при использовании $this->db->get()):

echo $this->db->limit(10,20)->get_compiled_select('mytable', FALSE);

// Выводит строку: SELECT * FROM mytable LIMIT 20, 10
// (в MySQL. Другие базы данных имеют немного другой синтаксис)

echo $this->db->select('title, content, date')->get_compiled_select();

// Выводит строку: SELECT title, content, date FROM mytable LIMIT 20, 10

Главное заметить в приведенном выше примере, что второй запрос не использует $this->db->from() и не передает имя таблицы в качестве первого параметра. Причина такого результата - запрос не был выполнен используя $this->db->get() который сбрасывает значения или сбросывает напрямую через $this->db->reset_query().

$this->db->get_where()

Идентична вышеописанной функции, за исключением того, что он разрешает добавить “where” вторым параметром вместо использования db->where() фуекции:

$query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);

Пожалуйста, прочитайте о данной функции ниже для получения дополнительной информации.

Примечание

get_where() ранее был известен как getwhere(), который был переименован

$this->db->select()

Позволяет указать часть ваших SELECT запросов:

$this->db->select('title, content, date');
$query = $this->db->get('mytable');

// Выполняет: SELECT title, content, date FROM mytable

Примечание

Если вы выбираете всё (*) из таблицы - не нужно использовать эту функцию. Когда не указан, codeigniter предполагает, что вы хотите выбрать все поля и автоматически добавляет ‘SELECT *’.

$this->db->select() принимает необязательный второй параметр. Если установите его в FALSE, CodeIgniter не будет пытаться защитить поля и имена таблиц. Это полезно, когда нужен составной SELECT, где автоматическое экранирование полей может их нарушить.

$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
$query = $this->db->get('mytable');

$this->db->select_max()

Создает SELECT MAX(field) часть запроса. Можно дополнительно указать второй параметр для переименования результирующего поля.

$this->db->select_max('age');
$query = $this->db->get('members');  // Производит: SELECT MAX(age) as age FROM members

$this->db->select_max('age', 'member_age');
$query = $this->db->get('members'); // Производит: SELECT MAX(age) as member_age FROM members

$this->db->select_min()

Создает “SELECT MIN(field)” часть запроса. Аналогично select_max(), можно дополнительно указать второй параметр для переименования результирующего поля.

$this->db->select_min('age');
$query = $this->db->get('members'); // Производит: SELECT MIN(age) as age FROM members

$this->db->select_avg()

Дописывает “SELECT AVG(поле)” часть запроса. Аналогично select_max(), можно дополнительно указать второй параметр для переименования результирующего поля.

$this->db->select_avg('age');
$query = $this->db->get('members'); // Производит: SELECT AVG(age) as age FROM members

$this->db->select_sum()

Дописывает “SELECT SUM(поле)” часть запроса. Аналогично select_max(), можно дополнительно указать второй параметр для переименования результирующего поля.

$this->db->select_sum('age');
$query = $this->db->get('members'); // Производит: SELECT SUM(age) as age FROM members

$this->db->from()

Позволяет создать FROM часть запроса:

$this->db->select('title, content, date');
$this->db->from('mytable');
$query = $this->db->get();  // Производит: SELECT title, content, date FROM mytable

Примечание

Как уже ранее говорилось, FROM часть запроса может быть указана в $this->db->get() функции, так что используйте предпочтительный для вас метод.

$this->db->join()

Позволяет создать JOIN часть запроса :

$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');
$query = $this->db->get();

// Производит:
// SELECT * FROM blogs JOIN comments ON comments.id = blogs.id

Можно делать множественные вызовы функций, если нужно несколько объединений в одном запросе.

Если вам нужен определенный тип JOIN вы можете задать его через третий параметр функции. Варианты: left, right, outer, inner, left outer и right outer.

$this->db->join('comments', 'comments.id = blogs.id', 'left');
// Производит: LEFT JOIN comments ON comments.id = blogs.id

Поиск конкретных данных 

$this->db->where()

Эта функция позволяет использовать условие WHERE, используя один из четырех методов:

Примечание

Все значения, переданные этой функции, автоматически производят безопасные запросы.

  1. Простой ключ/значение метод:

    $this->db->where('name', $name); // Производит: WHERE name = 'Joe'
    

    Обратите внимание, что знак равенства добавляется для вас.

    Если вы используете множественный вызов, запросы будут объединяться AND между собой:

    $this->db->where('name', $name);
    $this->db->where('title', $title);
    $this->db->where('status', $status);
    // WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
    
  2. Пользовательский ключ/значение метод:

    Вы можете использовать оператор в первом параметре для контроля за сравнением:

    $this->db->where('name !=', $name);
    $this->db->where('id <', $id); // Производит: WHERE name != 'Joe' AND id < 45
    
  3. Метод ассоциативного массива:

    $array = array('name' => $name, 'title' => $title, 'status' => $status);
    $this->db->where($array);
    // Производит: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
    

    Вы можете включить ваши собственные операторы также используя этот метод:

    $array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);
    $this->db->where($array);
    
  4. Пользовательская строка:

    Вы можете написать свои собственные запросы вручную:

    $where = "name='Joe' AND status='boss' OR status='active'";
    $this->db->where($where);
    

$this->db->where() принимает третий дополнительный параметр. Если он установлен FALSE, CodeIgniter не будет пробовать защитить ваши поля или имена таблиц.

$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);

$this->db->or_where()

Эта функция идентична описанной выше, за исключением того, что несколько экземпляров присоединяются следствием OR:

$this->db->where('name !=', $name);
$this->db->or_where('id >', $id);  // Производит: WHERE name != 'Joe' OR id > 50

Примечание

or_where() ранее был известен как orwhere(), который был удален.

$this->db->where_in()

Создает WHERE поле IN (‘item’, ‘item’) SQL запросе объедененным AND в случае необходимости

$names = array('Frank', 'Todd', 'James');
$this->db->where_in('username', $names);
// Производит: WHERE username IN ('Frank', 'Todd', 'James')

$this->db->or_where_in()

Создает WHERE поле IN (‘item’, ‘item’) SQL запросе объедененным OR в случае необходимости

$names = array('Frank', 'Todd', 'James');
$this->db->or_where_in('username', $names);
// Производит: OR username IN ('Frank', 'Todd', 'James')

$this->db->where_not_in()

Создает WHERE поле NOT IN (‘item’, ‘item’) SQL запросе объедененным AND в случае необходимости

$names = array('Frank', 'Todd', 'James');
$this->db->where_not_in('username', $names);
// Производит: WHERE username NOT IN ('Frank', 'Todd', 'James')

$this->db->or_where_not_in()

Создает WHERE поле NOT IN (‘item’, ‘item’) SQL запросе объедененным OR в случае необходимости

$names = array('Frank', 'Todd', 'James');
$this->db->or_where_not_in('username', $names);
// Производит: OR username NOT IN ('Frank', 'Todd', 'James')

Поиск одинаковых данных 

$this->db->like()

Этот метод позволяет создавать LIKE положения, полезные для ведения поисков.

Примечание

Все значения передаются в этот метод экранируются автоматически.

  1. Простой ключ/значение метод:

    $this->db->like('title', 'match');
    // Производит: WHERE `title` LIKE '%match%' ESCAPE '!'
    

    Если вы используете множественный вызов, запросы будут объединяться AND между собой:

    $this->db->like('title', 'match');
    $this->db->like('body', 'match');
    // WHERE `title` LIKE '%match%' ESCAPE '!' AND  `body` LIKE '%match% ESCAPE '!'
    

    Если вы хотите контролировать, где расположен подстановочный (%), вы можете использовать необязательный третий аргумент. Ваши варианты ‘before’, ‘after’ и ‘both’ (который является вариантом по умолчанию).

    $this->db->like('title', 'match', 'before');    // Производит: WHERE `title` LIKE '%match' ESCAPE '!'
    $this->db->like('title', 'match', 'after');     // Производит: WHERE `title` LIKE 'match%' ESCAPE '!'
    $this->db->like('title', 'match', 'both');      // Производит: WHERE `title` LIKE '%match%'#39; ESCAPE '!'
    
  2. Метод ассоциативного массива:

    $array = array('title' => $match, 'page1' => $match, 'page2' => $match);
    $this->db->like($array);
    // WHERE `title` LIKE '%match%' ESCAPE '!' AND  `page1` LIKE '%match%' ESCAPE '!' AND  `page2` LIKE '%match%' ESCAPE '!'
    

$this->db->or_like()

Этот метод идентичен предыдущему, за исключением того, что несколько экземпляров присоединяются используя OR:

$this->db->like('title', 'match'); $this->db->or_like('body', $match);
// WHERE `title` LIKE '%match%' ESCAPE '!' OR  `body` LIKE '%match%' ESCAPE '!'

Примечание

or_like() ранее был известен как orlike(), который был удален.

$this->db->not_like()

Этот метод идентичен like(), за исключением того, что он производит NOT LIKE выражения:

$this->db->not_like('title', 'match');  // WHERE `title` NOT LIKE '%match% ESCAPE '!'

$this->db->or_not_like()

Этот метод идентичен not_like(), за исключением того, что несколько экземпляров присоединяются используя OR:

$this->db->like('title', 'match');
$this->db->or_not_like('body', 'match');
// WHERE `title` LIKE '%match% OR  `body` NOT LIKE '%match%' ESCAPE '!'

$this->db->group_by()

Позволяет писать часть GROUP BY ваших запросов:

$this->db->group_by("title"); // Производит: GROUP BY title

Вы также можете передать массив из нескольких значений:

$this->db->group_by(array("title", "date"));  // Производит: GROUP BY title, date

Примечание

group_by() ранее был известен как groupby(), который был удален.

$this->db->distinct()

Добавляет слово “DISTINCT” в запрос

$this->db->distinct();
$this->db->get('table'); // Производит: SELECT DISTINCT * FROM table

$this->db->having()

Позволяет дописать ключевое слово для запроса HAVING. Доступно 2 возможных синтаксиса - 1 аргумент или 2:

$this->db->having('user_id = 45');  // Производит: HAVING user_id = 45
$this->db->having('user_id',  45);  // Производит: HAVING user_id = 45

Вы также можете передать массив из нескольких значений:

$this->db->having(array('title =' => 'My Title', 'id <' => $id));
// Производит: HAVING title = 'My Title', id < 45

Если вы используете базу данных, запросы к которой были экранированы CodeIgniter, вы можете избежать утечки содержимого, передавая третий необязательный аргумент установив его в FALSE.

$this->db->having('user_id',  45);  // Производит: HAVING `user_id` = 45 in some databases such as MySQL
$this->db->having('user_id',  45, FALSE);  // Производит: HAVING user_id = 45

$this->db->or_having()

Идентична having(), за исключением того, что пункт отделяются между собой “OR”.

Упорядочивание результатов 

$this->db->order_by()

Позволяет установить ORDER BY условие.

Первый параметр содержит имя столбца по которому вы хотите упорядочить.

Второй параметр позволяет задать направление результат. Варианты ASC, DESC и RANDOM.

$this->db->order_by('title', 'DESC');
// Производит: ORDER BY `title` DESC

Вы также можете сдать свою собственную строку в качестве первого параметра:

$this->db->order_by('title DESC, name ASC');
// Производит: ORDER BY `title` DESC, `name` ASC

Если вам нужно несколько полей, можно сделать несколько вызовов функции.

$this->db->order_by('title', 'DESC');
$this->db->order_by('name', 'ASC');
// Производит: ORDER BY `title` DESC, `name` ASC

Если выбрано направление RANDOM, первый параметр будет проигнорирован пока не будет указано число значений.

$this->db->order_by('title', 'RANDOM');
// Производит: ORDER BY RAND()

$this->db->order_by(42, 'RANDOM');
// Производит: ORDER BY RAND(42)

Примечание

order_by() ранее был известен как orderby(), который был удален.

Примечание

В настоящее время случайный порядок не поддерживается в Oracle и по умолчанию задан ASC.

Ограничение или подсчет результатов 

$this->db->limit()

Позволяет ограничить количество строк, возвращаемых запросом:

$this->db->limit(10);  // Производит: LIMIT 10

Второй параметр позволяет установить результате смещения.

$this->db->limit(10, 20);  // Производит: LIMIT 20, 10 (in MySQL.  Other databases have slightly different syntax)

$this->db->count_all_results()

Позволяет определить количество строк в конкретной активной записи запроса. Запросы принимаются Построителем Запросов и ограничиваются where(), or_where(), like(), or_like(), etc. Пример:

echo $this->db->count_all_results('my_table');  // Производит число как 25
$this->db->like('title', 'match');
$this->db->from('my_table');
echo $this->db->count_all_results(); // Производит число как 17

Однако, этот метод также сбрасывает все значения полей, которые вы, возможно, передали в select(). Если их нужно сохранить, передайте FALSE вторым параметром:

echo $this->db->count_all_results('my_table', FALSE);

$this->db->count_all()

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

echo $this->db->count_all('my_table');  // Produces an integer, like 25

Группирование запроса 

Группировка запросов позволяет создавать группы условия WHERE путем заключения их в скобки. Это позволит вам создавать запросы со сложными WHERE условиями. Вложенные группы поддерживаются. Пример:

$this->db->select('*')->from('my_table')
        ->group_start()
                ->where('a', 'a')
                ->or_group_start()
                        ->where('b', 'b')
                        ->where('c', 'c')
                ->group_end()
        ->group_end()
        ->where('d', 'd')
->get();

// Производит:
// SELECT * FROM (`my_table`) WHERE ( `a` = 'a' OR ( `b` = 'b' AND `c` = 'c' ) ) AND `d` = 'd'

Примечание

группы должны быть сбалансированы, убедитесь, что каждый group_start() соответствует group_end().

$this->db->group_start()

Начинает новую группу, добавив открывающую скобку на условие запроса WHERE.

$this->db->or_group_start()

Начинает новую группу, добавив открывающую скобку на условие запроса WHERE, префиксируя его с ‘OR’.

$this->db->not_group_start()

Начинает новую группу, добавив открывающую скобку на условие запроса WHERE, префиксируя его с ‘NOT’.

$this->db->or_not_group_start()

Начинает новую группу, добавив открывающую скобку на условие запроса WHERE, префиксируя его с ‘OR NOT’.

$this->db->group_end()

Начинает новую группу, добавив закрывающую скобку на условие запроса WHERE.

Вставка данных 

$this->db->insert()

Генерирует вставляемую строку, которая содержит предоставляемые вами данные и выполняет запрос. Вы можете передать либо массив либо объект в функцию. Вот пример с использованием массива:

span class="nv">$data = array(
        'title' => 'My title',
        'name' => 'My Name',
        'date' => 'My date'
);

$this->db->insert('mytable', $data);
// Производит: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

Первый параметр содержит имя таблицы, второй - ассоциативный массив значений.

Вот пример использования объекта:

/*
class Myclass {
        public $title = 'Заголовок';
        public $content = 'Содержимое';
        public $date = 'Дата';
}
*/

$object = new Myclass;
$this->db->insert('mytable', $object);
// Производит: INSERT INTO mytable (title, content, date) VALUES ('My Title', 'My Content', 'My Date')

Первый параметр содержит имя таблицы, второй - объект.

Примечание

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

$this->db->get_compiled_insert()

Компилирует ввод запроса как $this->db->insert() но НЕ выполняет запрос. Этот метод просто возвращает SQL запрос как строку.

Пример:

$data = array(
        'title' => 'My title',
        'name'  => 'My Name',
        'date'  => 'My date'
);

$sql = $this->db->set($data)->get_compiled_insert('mytable');
echo $sql;

// Производит строку: INSERT INTO mytable (`title`, `name`, `date`) VALUES ('My title', 'My name', 'My date')

Второй параметр позволяет установить, сбрасывать ли запрос Построителя Запросов (по умолчанию он будет –как $this->db->insert()):

echo $this->db->set('title', 'My Title')->get_compiled_insert('mytable', FALSE);

// Производит строку: INSERT INTO mytable (`title`) VALUES ('My Title')

echo $this->db->set('content', 'My Content')->get_compiled_insert();

// Производит строку: INSERT INTO mytable (`title`, `content`) VALUES ('My Title', 'My Content')

Самое главное в приведенном выше примере состоит в том, что второй запрос не использовал $this->db->from() и не передал имя таблицы в качестве первого параметра. Причина этому, то что запрос не был выполнен с использованием $this->db->insert() который сбрасывает значения или сбросывает напрямую через $this->db->reset_query().

Примечание

Этот метод не работает для пакетной вставки.

$this->db->insert_batch()

Генерирует вставляемую строку, которая содержит предоставляемые вами данные и выполняет запрос. Вы можете передать либо массив либо объект в функцию. Вот пример с использованием массива:

$data = array(
        array(
                'title' => 'My title',
                'name' => 'My Name',
                'date' => 'My date'
        ),
        array(
                'title' => 'Another title',
                'name' => 'Another Name',
                'date' => 'Another date'
        )
);

$this->db->insert_batch('mytable', $data);
// Производит: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'),  ('Another title', 'Another name', 'Another date')

Первый параметр будет содержать имя таблицы, второй - ассоциативный массив значений.

Примечание

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

Обновление данных 

$this->db->replace()

Этот метод выполняет условие REPLACE, по сути стандартный SQL DELETE + INSERT, используя PRIMARY и UNIQUE ключи в качестве определяющего фактора. В нашем случае, это избавит вас от необходимости реализации сложной логики с различными комбинациями select(), update(), delete() и insert() calls.

Пример:

$data = array(
        'title' => 'My title',
        'name'  => 'My Name',
        'date'  => 'My date'
);

$this->db->replace('table', $data);

// Выполняет: REPLACE INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

В приведенном выше примере, если предположить, что поле title наш первичный ключ, содержит ‘Заголовок’ как title значение, эта строка будет заменена нашими новыми данными.

Использование метода set() позволяет автоматически экранировать как с insert().

$this->db->set()

Эта функция позволяет Вам установить значения для вставки и обновления.

Она может быть использована вместо передачи массива данных непосредственно для вставки или обновления функций:

$this->db->set('name', $name);
$this->db->insert('mytable');  // Производит: INSERT INTO mytable (`name`) VALUES ('{$name}')

Если вы используете несколько функции они будут правильно собраны, в независимости от того, делаете вы вставку или обновление:

$this->db->set('name', $name);
$this->db->set('title', $title);
$this->db->set('status', $status);
$this->db->insert('mytable');

set() также принимает необязательный третий параметр ($escape), что предотвращает экранирование данных если установлено FALSE. Чтобы проиллюстрировать разницу, вот set() работает С и БЕЗ параметра экранирования.

$this->db->set('field', 'field+1', FALSE);
$this->db->where('id', 2);
$this->db->update('mytable'); // дает UPDATE mytable SET field = field+1 WHERE id = 2

$this->db->set('field', 'field+1');
$this->db->where('id', 2);
$this->db->update('mytable'); // дает UPDATE `mytable` SET `field` = 'field+1' WHERE `id` = 2

Вы также можете пройти ассоциативный массив в эту функцию:

$array = array(
        'name' => $name,
        'title' => $title,
        'status' => $status
);

$this->db->set($array);
$this->db->insert('mytable');

Or an object:

/*
class Myclass {
        public $title = 'Заголовок';
        public $content = 'Содержимое';
        public $date = 'Дата';
}
*/

$object = new Myclass;
$this->db->set($object);
$this->db->insert('mytable');

$this->db->update()

Генерирует строку обновления и запускает запрос, основанный на данных, предоставляемых вами. Можете передать массив или объект в функцию. Вот пример с использованием массива:

$data = array(
        'title' => $title,
        'name' => $name,
        'date' => $date
);

$this->db->where('id', $id);
$this->db->update('mytable', $data);
// Производит:
//
//      UPDATE mytable
//      SET title = '{$title}', name = '{$name}', date = '{$date}'
//      WHERE id = $id

Или вы можете использовать объект:

/*
class Myclass {
        public $title = 'Заголовок';
        public $content = 'Содержимое';
        public $date = 'Дата';
}
*/

$object = new Myclass;
$this->db->where('id', $id);
$this->db->update('mytable', $object);
// Производит:
//
// UPDATE `mytable`
// SET `title` = '{$title}', `name` = '{$name}', `date` = '{$date}'
// WHERE id = `$id`

Примечание

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

Вы заметите использование функции $this->db->where(), что позволяет установить условие WHERE. При желании вы можете передать эту информацию непосредственно в функцию обновления как строку:

$this->db->update('mytable', $data, "id = 4");

Или как массив:

$this->db->update('mytable', $data, array('id' => $id));

Вы также можете использовать функцию $this->db->set() описанную выше при выполнении обновления.

$this->db->update_batch()

Генерирует строку обновления, основанную предоставляемых вами данных, и выполняет запрос. Может быть использован массив или объект. Вот пример с использованием массива:

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name 2' ,
      'date' => 'My date 2'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name 2' ,
      'date' => 'Another date 2'
   )
);

$this->db->update_batch('mytable', $data, 'title');

// Производит:
// UPDATE `mytable` SET `name` = CASE
// WHEN `title` = 'My title' THEN 'My Name 2'
// WHEN `title` = 'Another title' THEN 'Another Name 2'
// ELSE `name` END,
// `date` = CASE
// WHEN `title` = 'My title' THEN 'My date 2'
// WHEN `title` = 'Another title' THEN 'Another date 2'
// ELSE `date` END
// WHERE `title` IN ('My title','Another title')

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

Примечание

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

Примечание

affected_rows() не даст вам правильные результаты с помощью этого метода, из-за своей природы работы. update_batch() возвращает количество затронутых строк.

$this->db->get_compiled_update()

Это работает точно так же, как $this->db->get_compiled_insert() за исключением того, что он производит UPDATE SQL строку вместо INSERT SQL строки.

Для более подробной информации смотрите документацию по $this->db->get_compiled_insert().

Примечание

Этот метод не работает для пакетного обновления.

Удаление данных 

$this->db->delete()

Создает SQL строку удаления и выполняет запрос.

$this->db->delete('mytable', array('id' => $id));  // Производит: // DELETE FROM mytable  // WHERE id = $id

Первый параметр - имя таблицы, второй - условие where. Вы также можете использовать where() или or_where() функции вместо передачи данных для второго параметра функции:

$this->db->where('id', $id);
$this->db->delete('mytable');

// Производит:
// DELETE FROM mytable
// WHERE id = $id

Может быть передан массив имен таблиц в delete() если вы хотите удалить данные более чем из 1 таблицы.

$tables = array('table1', 'table2', 'table3');
$this->db->where('id', '5');
$this->db->delete($tables);

Если вы хотите удалить все данные из таблицы, вы можете использовать truncate() функцию или empty_table().

$this->db->empty_table()

Создает SQL строку удаления и выполняет запрос:

$this->db->empty_table('mytable'); // Производит: DELETE FROM mytable

$this->db->truncate()

Создает строку удаления SQL и выполняет запрос.

$this->db->from('mytable');
$this->db->truncate();

// или 

$this->db->truncate('mytable');

// Производит:
// TRUNCATE mytable

Примечание

Если команда TRUNCATE не доступна, truncate() будет выполнена как “DELETE FROM table”.

$this->db->get_compiled_delete()

Это работает точно так же, как $this->db->get_compiled_insert() за исключением того, что она производит строку DELETE SQL вместо строки INSERT SQL.

Для более подробной информации смотрите документацию по $this->db->get_compiled_insert().

Метод цепочек 

Метод цепочки позволяет упростить синтаксис путем соединения нескольких функций. Рассмотрим такой пример:

$query = $this->db->select('title')
                ->where('id', $id)
                ->limit(10, 20)
                ->get('mytable');

Кеширование конструктора запросов 

Пока кеширование не “true”, Построитель Запросов позволяет сохранить (или “закешировать”) некоторые части ваших запросов для повторного использования позже в ваших скриптах. Как правило, после завершения вызова, Построитель Запросов, всю хранящуюся информацию сбрасывает для следующего вызова. С кэшированием, вы можете предотвратить этот сброс и легко повторно использовать данные.

Кешированные вызовы являются накопительными. При выполнениии 2х select() вызовов и 2х некешируемых select() вызовов, результатом будет 4 select() вызова. Доступны три функции кеширования:

$this->db->start_cache()

Эта функция должна вызываться для начала кеширование. Все запросы Построителя Запросов правильного типа (см. ниже для поддерживаемых запросов) сохраняются для последующего использования.

$this->db->stop_cache()

Эта функция может быть вызвана, чтобы остановить кеширование.

$this->db->flush_cache()

Эта функция удаляет все элементы из кеша Построителя Запросов.

Пример кеширования 

Примериспользования:

$this->db->start_cache();
$this->db->select('field1');
$this->db->stop_cache();
$this->db->get('tablename');
//Производит: SELECT `field1` FROM (`tablename`)

$this->db->select('field2');
$this->db->get('tablename');
//Производит:  SELECT `field1`, `field2` FROM (`tablename`)

$this->db->flush_cache();
$this->db->select('field2');
$this->db->get('tablename');
//Производит:  SELECT `field2` FROM (`tablename`)

Примечание

Следующие условия могут быть кешированы: select, from, join, where, like, group_by, having, order_by

Сброс настроек конструктора запросов 

$this->db->reset_query()

Сброс Построителя Запросов позволяет начать с запроса без его первичного выполнения. Для этого используется метод $this->db->get() или $this->db->insert(). Как и методы выполняющие запрос, это будет НЕ сброс данных кешированных с помощью кеширования Построитель Запросов.

Это полезно в ситуациях, где вы используете Построитель запросов, чтобы создать SQL (ex. $this->db->get_compiled_select()) а затем выбрать запрос для выполнения:

// Обратите внимание, что второй параметр get_compiled_select method установлен в FALSE
$sql = $this->db->select(array('field1','field2'))
                                ->where('field3',5)
                                ->get_compiled_select('mytable', FALSE);

// ...
// Что-то делаем с SQL кодом... например добавить в скрипт cron для
// выполнения позже или еще что-то...
// ...

$data = $this->db->get()->result_array();

// Будет выполнять и возвращать массив результатов следующего запроса:
// SELECT field1, field1 from mytable where field3 = 5;

Примечание

Двойные вызовы get_compiled_select() в то время как вы используете функциональность кеширования Построителя запросов и НЕ сбрасываете ваши результаты, в кэше будут дважды слиты. Что, в свою очередь будет равносильно тому, если вы кешируете select() то же поле дважды.

Справка класса 

class CI_DB_query_builder 
reset_query() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Сбрасывает текущее состояние Построителя запросов. Полезно, когда вы хотите создать запрос, который может быть отменен при определенных условиях.

start_cache() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Начинает кеширование Построителя запросов.

stop_cache() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Заканчивает кеширование Построителя запросов.

flush_cache() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Очищает кеширование Построителя запросов.

set_dbprefix([$prefix = '']) 
Параметры:
  • $prefix (строка) – Новый префикс для использования
Возврощает:

Префикс DB в использовании

Возврощаемый тип:

строка

Задает префикс базы данных, без необходимости переподключения.

dbprefix([$table = '']) 
Параметры:
  • $table (строка) – Имя префикса таблицы
Возврощает:

Имя префикса таблицы

Возврощаемый тип:

строка

Добавляет префикс базы данных, если таковой существует в конфигурации.

count_all_results([$table = ''[, $reset = TRUE]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $reset (булев) – Можно ли сбросить значения SELECTов
Возврощает:

Количество строк в результате запроса

Возврощаемый тип:

число

Создает платформу для специальной строки запроса, которая подсчитывает все записи, возвращенные запросом Построителя Запросов.

get([$table = ''[, $limit = NULL[, $offset = NULL]]]) 
Параметры:
  • $table (строка) – Таблица для запроса
  • $limit (число) – Условие LIMIT
  • $offset (число) – Условие OFFSET
Возврощает:

CI_DB_result экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_result

Компилирует и выполняет SELECT условия, основано на уже вызванных методах Построителя запросов.

get_where([$table = ''[, $where = NULL[, $limit = NULL[, $offset = NULL]]]]) 
Параметры:
  • $table (смешанный) – Таблица(ы) для извлечения данных; строка или массив
  • $where (строка) – Условие WHERE
  • $limit (число) – Условие LIMIT
  • $offset (число) – Условие OFFSET
Возврощает:

CI_DB_result экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_result

Как и get(), но также позволяет добавлять условие WHERE.

select([$select = '*'[, $escape = NULL]]) 
Параметры:
  • $select (строка) – Часть запроса SELECT
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет SELECT условие в запрос.

select_avg([$select = ''[, $alias = '']]) 
Параметры:
  • $select (строка) – Поле для вычисления среднего арифметического
  • $alias (строка) – Псевдоним на результирующее значение имени
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет SELECT AVG(поле) условие запроса.

select_max([$select = ''[, $alias = '']]) 
Параметры:
  • $select (строка) – Поле для вычисления максимума
  • $alias (строка) – Псевдоним на результирующее значение имени
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет SELECT MAX(поле) условие запроса

select_min([$select = ''[, $alias = '']]) 
Параметры:
  • $select (строка) – Поле для вычисления минимума
  • $alias (строка) – Псевдоним на результирующее значение имени
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет SELECT MIN(поле) условие запроса.

select_sum([$select = ''[, $alias = '']]) 
Параметры:
  • $select (строка) – Поле для вычисления суммы
  • $alias (строка) – Псевдоним на результирующее значение имени
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет SELECT SUM(поле) условие запроса.

distinct([$val = TRUE]) 
Параметры:
  • $val (булев) – Desired value of the “distinct” flag
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Задает флаг, который сообщает построителю запросов, чтобы добавить условие DISTINCT в часть запроса SELECT.

from($from) 
Параметры:
  • $from (смешанный) – Имя таблиц(ы); строка или массив
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Указывает FROM условие запроса.

join($table, $cond[, $type = ''[, $escape = NULL]]) 
Параметры:
  • $table (строка) – Имя таблицы для join
  • $cond (строка) – Условие JOIN ON
  • $type (строка) – Тип JOIN
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет JOIN условие в запрос.

where($key[, $value = NULL[, $escape = NULL]]) 
Параметры:
  • $key (смешанный) – Имя поля для сравнения или ассоциативный массив
  • $value (смешанный) – Если один ключ - сравнение с этим значением
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

DB_query_builder экземпляр

Возврощаемый тип:

объект

Создает часть WHERE запроса. Части отделяются ‘AND’ между собой.

or_where($key[, $value = NULL[, $escape = NULL]]) 
Параметры:
  • $key (смешанный) – Имя полядля сравнения или ассоциативный массив
  • $value (смешанный) – Если один ключ - сравнение с этим значением
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

DB_query_builder экземпляр

Возврощаемый тип:

объект

Создает часть WHERE запроса. Части отделяются ‘OR’ между собой.

or_where_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) 
Параметры:
  • $key (строка) – Поле для поиска
  • $values (массив) – Значения поиска
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

DB_query_builder экземпляр

Возврощаемый тип:

объект

Создает WHERE поле IN(‘item’, ‘item’) SQL запроса, объединяется ‘OR’ в случае необходимости.

or_where_not_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) 
Параметры:
  • $key (строка) – Поле для поиска
  • $values (массив) – Значения поиска
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

DB_query_builder экземпляр

Возврощаемый тип:

объект

Создает WHERE поле NOT IN(‘item’, ‘item’) SQL запроса, объединяется ‘OR’ в случае необходимости.

where_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) 
Параметры:
  • $key (строка) – Имя поле для изучения
  • $values (массив) – Выбора целевых значений
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

DB_query_builder экземпляр

Возврощаемый тип:

объект

Создает WHERE поле IN(‘item’, ‘item’) SQL запроса, объединяется ‘AND’ в случае необходимости.

where_not_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) 
Параметры:
  • $key (строка) – Имя поле для изучения
  • $values (массив) – Выбора целевых значений
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

DB_query_builder экземпляр

Возврощаемый тип:

объект

Создает WHERE поле NOT IN(‘item’, ‘item’) SQL запроса, объединяется ‘AND’ в случае необходимости.

group_start() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Начинает групповое выражение, используя AND для условий внутри него.

or_group_start() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Начинает групповое выражение, используя OR для условий внутри него.

not_group_start() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Начинает групповое выражение, используя AND NOT для условий внутри него.

or_not_group_start() 
Возврощает:CI_DB_query_builder экземпляр (метод цепочки)
Возврощаемый тип:CI_DB_query_builder

Начинает групповое выражение, используя OR NOT для условий внутри него.

group_end() 
Возврощает:DB_query_builder экземпляр
Возврощаемый тип:object

Заканчивает выражение группы.

like($field[, $match = ''[, $side = 'both'[, $escape = NULL]]]) 
Параметры:
  • $field (строка) – Имя поля
  • $match (строка) – Tекстовая часть для соответствия
  • $side (строка) – С какой стороны выражения поставить ‘%’ шаблон
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет LIKE условие в запрос, разделяются между собой - AND.

or_like($field[, $match = ''[, $side = 'both'[, $escape = NULL]]]) 
Параметры:
  • $field (строка) – Имя поля
  • $match (строка) – Tекстовая часть для соответствия
  • $side (строка) – С какой стороны выражения поставить ‘%’ шаблон
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет LIKE условие в запрос, разделяются между собой - OR.

not_like($field[, $match = ''[, $side = 'both'[, $escape = NULL]]]) 
Параметры:
  • $field (строка) – Имя поля
  • $match (строка) – Tекстовая часть для соответствия
  • $side (строка) – С какой стороны выражения поставить ‘%’ шаблон
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет NOT LIKE условие в запрос, разделяются между собой - AND.

or_not_like($field[, $match = ''[, $side = 'both'[, $escape = NULL]]]) 
Параметры:
  • $field (строка) – Имя поля
  • $match (строка) – Tекстовая часть для соответствия
  • $side (строка) – С какой стороны выражения поставить ‘%’ шаблон
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет NOT LIKE условие в запрос, разделяются между собой - OR.

having($key[, $value = NULL[, $escape = NULL]]) 
Параметры:
  • $key (смешанный) – Идентификатор (строка) или ассоциативный массив ключ/значение
  • $value (строка) – Значение, если $key - идентификатор
  • $escape (строка) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет HAVING условие в запрос, разделяются между собой - AND.

or_having($key[, $value = NULL[, $escape = NULL]]) 
Параметры:
  • $key (смешанный) – Идентификатор (строка) или ассоциативный массив ключ/значение
  • $value (строка) – Значение, если $key - идентификатор
  • $escape (строка) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет HAVING условие в запрос, разделяются между собой - OR.

group_by($by[, $escape = NULL]) 
Параметры:
  • $by (смешанный) – Поле(я) в группе; строка или массив
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет GROUP BY условие в запрос.

order_by($orderby[, $direction = ''[, $escape = NULL]]) 
Параметры:
  • $orderby (строка) – Поле для упорядочивания
  • $direction (строка) – Порядок запроса - ASC, DESC или random
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет ORDER BY условие в запрос.

limit($value[, $offset = 0]) 
Параметры:
  • $value (число) – Количество строк, чтобы ограничить результаты
  • $offset (число) – Количество строк, которые нужно пропустить
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет LIMIT и OFFSET условия в запрос.

offset($offset) 
Параметры:
  • $offset (число) – Количество строк, которые нужно пропустить
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет OFFSET условие в запрос.

set($key[, $value = ''[, $escape = NULL]]) 
Параметры:
  • $key (смешанный) – Имя поля или массива поле/значение
  • $value (строка) – Поле значение, если $key - одиночное поле
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет поле/значение для передачи позже в insert(), update() или replace().

insert([$table = ''[, $set = NULL[, $escape = NULL]]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $set (массив) – Ассоциативный массив поле/значение
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

TRUE при успехе, FALSE при неудаче

Возврощаемый тип:

булев

Компилирует и выполняет INSERT запрос.

insert_batch($table[, $set = NULL[, $escape = NULL[, $batch_size = 100]]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $set (массив) – Дата вставки
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
  • $batch_size (число) – Количество строк для вставки сразу
Возврощает:

Число строк, вставленных или FALSE при неудаче

Возврощаемый тип:

смешанный

Compiles and executes batch INSERT statements.

Примечание

Когда более чем $batch_size строк не предусмотрено, несколько INSERT запросов будет выполнено, каждый пытается вставить до $batch_size строк.

set_insert_batch($key[, $value = ''[, $escape = NULL]]) 
Параметры:
  • $key (смешанный) – Имя поля или массив поля/значение
  • $value (строка) – Поле значение, если $key - одиночное поле
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет поле/значение пары для вставки в таблицу позже через insert_batch().

update([$table = ''[, $set = NULL[, $where = NULL[, $limit = NULL]]]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $set (массив) – Ассоциативный массив поле/значение
  • $where (строка) – Условие WHERE
  • $limit (число) – Условие LIMIT
Возврощает:

TRUE при успехе, FALSE при неудаче

Возврощаемый тип:

булев

Компилирует и выполняет UPDATE запрос.

update_batch($table[, $set = NULL[, $value = NULL[, $batch_size = 100]]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $set (массив) – Имя поля или ассоциативный массив поле/значение
  • $value (строка) – Поле значение, если set - одиночное поле
  • $batch_size (число) – Количество условий в группе в одном запросе
Возврощает:

Количество обновленных строк или FALSE при неудаче

Возврощаемый тип:

смешанный

Компилирует и выполняет пакетные UPDATE условия.

Примечание

Когда более чем $batch_size поле/значение пар предусмотренно, несколько запросов будет выполнено с обращением каждого к паре $batch_size поле/значение.

set_update_batch($key[, $value = ''[, $escape = NULL]]) 
Параметры:
  • $key (смешанный) – Имя поля или массив поле/значение
  • $value (строка) – Поле значение, если $key - одиночное поле
  • $escape (булев) – Стоит ли экранировать значения и идентификаторы
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки)

Возврощаемый тип:

CI_DB_query_builder

Добавляет поле/значение для обновления в таблице позже через update_batch().

replace([$table = ''[, $set = NULL]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $set (массив) – Ассоциативный массив поле/значение
Возврощает:

TRUE при успехе, FALSE при неудаче

Возврощаемый тип:

булев

Компилирует и выполняет REPLACE условие.

delete([$table = ''[, $where = ''[, $limit = NULL[, $reset_data = TRUE]]]]) 
Параметры:
  • $table (смешанный) – Таблица(ы) для удаления; строка или массив
  • $where (строка) – Условие WHERE
  • $limit (число) – Условие LIMIT
  • $reset_data (булев) – TRUE чтобы сбросить запрос условия “write”
Возврощает:

CI_DB_query_builder экземпляр (метод цепочки) or FALSE on failure

Возврощаемый тип:

смешанный

Компилирует и выполняет DELETE условие.

truncate([$table = '']) 
Параметры:
  • $table (строка) – Имя таблицы
Возврощает:

TRUE при успехе, FALSE при неудаче

Возврощаемый тип:

булев

Выполняет условие TRUNCATE для таблицы.

Примечание

Если платформа базы данных не поддерживает TRUNCATE, то будет использовано условие DELETE.

empty_table([$table = '']) 
Параметры:
  • $table (строка) – Имя таблицы
Возврощает:

TRUE при успехе, FALSE при неудаче

Возврощаемый тип:

булев

Удаляет все записи из таблицы с помощью условия DELETE.

get_compiled_select([$table = ''[, $reset = TRUE]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $reset (булев) – Можно ли сбросить текущие значения для Построителя запросов или нет
Возврощает:

Скомпилированный SQL запрос как строку

Возврощаемый тип:

строка

Компилирует SELECT запрос и возвращает в виде строки.

get_compiled_insert([$table = ''[, $reset = TRUE]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $reset (булев) – Можно ли сбросить текущие значения для Построителя запросов или нет
Возврощает:

Скомпилированный SQL запрос как строку

Возврощаемый тип:

строка

Компилирует INSERT запрос и возвращает в виде строки.

get_compiled_update([$table = ''[, $reset = TRUE]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $reset (булев) – Можно ли сбросить текущие значения для Построителя запросов или нет
Возврощает:

Скомпилированный SQL запрос как строку

Возврощаемый тип:

строка

Компилирует UPDATE запрос и возвращает в виде строки.

get_compiled_delete([$table = ''[, $reset = TRUE]]) 
Параметры:
  • $table (строка) – Имя таблицы
  • $reset (булев) – Можно ли сбросить текущие значения для Построителя запросов или нет
Возврощает:

Скомпилированный SQL запрос как строку

Возврощаемый тип:

строка

Компилирует DELETE запрос и возвращает в виде строки.