Изменения

Funq

274 байта добавлено, 21:23, 20 сентября 2009
Формирование запроса
; <code>$dbh->query($table[, $alias])</code>: Конструирует и возвращает новый объект запроса. Параметр $table может сам быть объектом (под)запроса.
; <code>$query1query->join($query2)clone</code>: Конструирует новый объект Возвращает клон объекта запроса как соединение запросов <code>$query1</code> и <code>$query2query</code>.; <code>$query1->union($query2)</code>: Конструирует объединение запросов <code>$query1</code> и <code>$query2</code>. Не путать с соединением«Такой же, только другой», не имеющий никаких ссылок на старый объект или его части.; <code>$query1->union_all($query2)</code>: Конструирует неуникальное объединение запросов <code>$query1</code> и <code>$query2</code>. Не путать с соединением.; <code>$query1->intersect($query2)</code>: Конструирует пересечение запросов <code>$query1</code> и <code>$query2</code>.; <code>$query1->intersect_all($query2)</code>: Конструирует неуникальное пересечение запросов <code>$query1</code> и <code>$query2</code>.; <code>$query1->except($query2)</code>: Конструирует разность запросов <code>$query1</code> и <code>$query2</code>. <span style="color:red">Не реализовано в MySQL</span>.; <code>$query1->except_all($query2)</code>: Конструирует неуникальную разность запросов <code>$query1</code> и <code>$query2</code>. <span style="color:red">Не реализовано в MySQL</span>.== Унарные преобразования ====; <code>$query1->join($query2)</code>: Конструирует внутреннее соединение (Inner Join) запросов <code>$query1</code> и <code>$query2</code>.
; <code>$query->where($condition[, $condition2, ...])</code>: Добавляет все переданные ограничения (в виде строк) к объекту запроса <code>$query</code>.
; <code>$query->select($field_list)</code>: Задаёт список столбцов для объекта запроса. Может включать вычислимые столбцы и placeholder’ы.
; <code>$query->insert_into($table)</code>: Превращает запрос в запрос вставки выбранных строк в таблицу <code>$table</code>. Параметр <code>$table</code> обязательно должен быть именем таблицы. В зависимости от СУБД, может принимать дополнительные параметры — в случае с MySQL это может быть LOW_PRIORITY или DELAYED (см. [[http://dev.mysql.com/doc/refman/5.0/en/insert.html|Синтаксис INSERT MySQL]]);
; <code>$query->replace_into($table)</code> ([http://www.mysql.com/ MySQL]). Превращает запрос в запрос замены выбранных строк в таблицу <code>$table</code>: Аналогично insert_to, но при этом все имеющиеся в таблице записи со значениями полей, входящих в первичный или уникальный ключ, равными значениям одной из вставляемых строк, предварительно удаляются (см. [[http://dev.mysql.com/doc/refman/5.0/en/replace.html|Синтаксис REPLACE MySQL]]).
 ==== Бинарные преобразования ==== ; <code>$queryquery1->cloneunion($query2)</code>: Возвращает клон объекта запроса Конструирует объединение запросов <code>$queryquery1</code> и <code>$query2</code>. «Такой же, только другой», не имеющий никаких ссылок на старый объект или его частиНе путать с соединением.; <code>$query1->union_all($query2)</code>: Конструирует неуникальное объединение запросов <code>$query1</code> и <code>$query2</code>. Не путать с соединением.; <code>$query1->intersect($query2)</code>: Конструирует пересечение запросов <code>$query1</code> и <code>$query2</code>.; <code>$query1->intersect_all($query2)</code>: Конструирует неуникальное пересечение запросов <code>$query1</code> и <code>$query2</code>.; <code>$query1->except($query2)</code>: Конструирует разность запросов <code>$query1</code> и <code>$query2</code>. <span style="color:red">Не реализовано в MySQL</span>.; <code>$query1->except_all($query2)</code>: Конструирует неуникальную разность запросов <code>$query1</code> и <code>$query2</code>. <span style="color:red">Не реализовано в MySQL</span>.; <code>$query1->join($query2)</code>: Конструирует внутреннее соединение (Inner Join) запросов <code>$query1</code> и <code>$query2</code>.; <code>$query1->leftjoin($query2)</code>: Конструирует левое соединение (Left Join) запросов <code>$query1</code> и <code>$query2</code>.; <code>$query1->rightjoin($query2)</code>: Конструирует правое соединение (Right Join) запросов <code>$query1</code> и <code>$query2</code>.
<span style="color:red">Внимание!</span> Методы update и delete могут быть применены к запросу только один раз, не могут сочетаться, не могут быть применены после insert_into или replace_into, и аннулируют действие на запрос методов select, group, order, distinct, count, value, включая их предыдущие применения к запросу <#f00>(!)</#>. Кроме того, невозможно применение методов update и delete к запросам, имеющим подзапросы в качестве derived table. При попытке любого из таких запрещённых действий генерируются предупреждения, а вызов игнорируется.