Spec-Zone.ru › Yii 2.0

Класс yii\sphinx\Command

Все классы | Свойства | Методы
Наследование yii\sphinx\Command » yii\db\Command » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable
Доступна с версии 2.0
Исходный код https://github.com/yiisoft/yii2-sphinx/blob/master/Command.php

Command представляет собой SQL-запрос, который будет выполнен против Sphinx.

Объект команды обычно создается вызовом yii\sphinx\Connection::createCommand(). Представленный SQL-запрос может быть задан через свойство $sql.

Для выполнения не-запроса SQL (например, INSERT, REPLACE, DELETE, UPDATE), вызовите execute(). Для выполнения SQL-запроса, возвращающего набор результатов (например, SELECT, CALL SNIPPETS, CALL KEYWORDS), используйте queryAll(), queryOne(), queryColumn(), queryScalar() или query(). Например,

$articles = $connection->createCommand("SELECT * FROM `idx_article` WHERE MATCH('programming')")->queryAll();

Command поддерживает подготовку SQL-запросов и привязку параметров так же, как и yii\db\Command.

Command также поддерживает построение SQL-запросов, предоставляя методы, такие как insert(), update() и т. д. Например,

$connection->createCommand()->update('idx_article', [
    'genre_id' => 15,
    'author_id' => 157,
])->execute();

Для построения SELECT SQL-запросов, пожалуйста, используйте yii\sphinx\Query и yii\sphinx\QueryBuilder вместо этого.

Общедоступные свойства

Свойство Тип Описание Определено в
$behaviors yii\base\Behavior[] Список прикрепленных к этому компоненту поведений yii\base\Component
$db yii\sphinx\Connection Подключение Sphinx, с которым связана эта команда. yii\sphinx\Command
$fetchMode integer Режим извлечения по умолчанию для этой команды. yii\db\Command
$params array Параметры (имя => значение), привязанные к текущему оператору PDO. yii\db\Command
$pdoStatement PDOStatement Объект PDOStatement, с которым связана эта команда yii\db\Command
$queryCacheDependency yii\caching\Dependency Зависимость, которая будет связана с результатом кэшированного запроса для этой команды yii\db\Command
$queryCacheDuration integer Число секунд по умолчанию, в течение которых результаты запроса могут храниться в кэше. yii\db\Command
$rawSql string Необработанный SQL с значениями параметров, вставленными в соответствующие заполнитель в $sql. yii\db\Command
$sql string SQL-запрос, который необходимо выполнить yii\db\Command

Общедоступные методы

Метод Описание Определён в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Component
__clone() Этот метод вызывается после создания объекта путём клонирования существующего. yii\base\Component
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства компонента. yii\base\Component
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Component
__set() Устанавливает значение свойства компонента. yii\base\Component
__unset() Устанавливает свойство компонента в значение null. yii\base\Component
addColumn() Создаёт SQL команду для добавления нового столбца БД. yii\sphinx\Command
addCommentOnColumn() Создаёт SQL команду для добавления комментария к столбцу yii\db\Command
addCommentOnTable() Создаёт SQL команду для добавления комментария к таблице yii\db\Command
addForeignKey() Создаёт SQL команду для добавления ограничения внешнего ключа к существующей таблице. yii\sphinx\Command
addPrimaryKey() Создаёт SQL команду для добавления ограничения первичного ключа к существующей таблице. yii\sphinx\Command
alterColumn() Создаёт SQL команду для изменения определения столбца. yii\sphinx\Command
attachBehavior() Присоединяет поведение к компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
batchInsert() Создаёт команду пакетного INSERT. yii\sphinx\Command
batchReplace() Создаёт команду пакетного REPLACE. yii\sphinx\Command
behaviors() Возвращает список поведений, по которым должен вести себя этот компонент. yii\base\Component
bindParam() Связывает параметр с SQL-заявлением, которое будет выполнено. yii\db\Command
bindValue() Связывает значение с параметром. yii\sphinx\Command
bindValues() Связывает список значений с соответствующими параметрами. yii\sphinx\Command
cache() Включает кэширование запросов для этой команды. yii\db\Command
callKeywords() Возвращает токенизированные и нормализованные формы ключевых слов и, необязательно, статистику по ключевым словам. yii\sphinx\Command
callSnippets() Строит фрагмент из предоставленных данных и запроса, используя указанные параметры индекса. yii\sphinx\Command
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Component
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Component
cancel() Отменяет выполнение SQL-запроса. yii\db\Command
checkIntegrity() Строит SQL-команду для включения или выключения проверки целостности. yii\sphinx\Command
className() Возвращает полное имя этого класса. yii\base\Object
createIndex() Создаёт SQL команду для создания нового индекса. yii\sphinx\Command
createTable() Создаёт SQL команду для создания новой таблицы БД. yii\sphinx\Command
delete() Создаёт команду DELETE. yii\db\Command
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
dropColumn() Создаёт SQL команду для удаления столбца БД. yii\sphinx\Command
dropCommentFromColumn() Создаёт SQL команду для удаления комментария из столбца yii\db\Command
dropCommentFromTable() Создаёт SQL команду для удаления комментария из таблицы yii\db\Command
dropForeignKey() Создаёт SQL команду для удаления ограничения внешнего ключа. yii\sphinx\Command
dropIndex() Создаёт SQL команду для удаления индекса. yii\sphinx\Command
dropPrimaryKey() Создаёт SQL команду для удаления ограничения первичного ключа из существующей таблицы. yii\sphinx\Command
dropTable() Создаёт SQL команду для удаления таблицы БД. yii\sphinx\Command
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
execute() Выполняет SQL-запрос. yii\db\Command
getBehavior() Возвращает объект именованного поведения. yii\base\Component
getBehaviors() Возвращает все присоединённые к этому компоненту поведения. yii\base\Component
getRawSql() Возвращает исходный SQL, подставив значения параметров в соответствующие заглушки в $sql. yii\db\Command
getSql() Возвращает SQL-запрос для этой команды. yii\db\Command
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчик, присоединённый к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Component
hasProperty() Возвращает значение, указывающее, определено ли свойство для этого компонента. yii\base\Component
init() Инициализирует объект. yii\base\Object
insert() Создаёт команду INSERT. yii\db\Command
noCache() Отключает кэширование запроса для этой команды. yii\db\Command
off() Отсоединяет существующий обработчик событий от этого компонента. yii\base\Component
on() Присоединяет обработчик событий к событию. yii\base\Component
prepare() Подготавливает SQL-запрос к выполнению. yii\sphinx\Command
query() Выполняет SQL-запрос и возвращает результат запроса. yii\db\Command
queryAll() Выполняет SQL-запрос и возвращает ВСЕ строки сразу. yii\db\Command
queryColumn() Выполняет SQL-запрос и возвращает первую колонку результата. yii\db\Command
queryOne() Выполняет SQL-запрос и возвращает первую строку результата. yii\db\Command
queryScalar() Выполняет SQL-запрос и возвращает значение первой колонки в первой строке данных. yii\db\Command
renameColumn() Создаёт SQL-команду для переименования колонки. yii\sphinx\Command
renameTable() Создаёт SQL-команду для переименования таблицы БД. yii\sphinx\Command
replace() Создаёт команду REPLACE. yii\sphinx\Command
resetSequence() Создаёт SQL-команду для сброса значения последовательности первичного ключа таблицы. yii\sphinx\Command
setSql() Указывает SQL-запрос для выполнения. yii\db\Command
trigger() Вызывает событие. yii\base\Component
truncateIndex() Создаёт SQL-команду для усечения временного индекса. yii\sphinx\Command
truncateTable() Создаёт SQL-команду для усечения таблицы БД. yii\sphinx\Command
update() Создаёт команду UPDATE. yii\sphinx\Command

Защищённые методы

Метод Описание Определён в
bindPendingParams() Связывает ожидаемые параметры, которые были зарегистрированы через bindValue() и bindValues(). yii\db\Command
queryInternal() Выполняет фактический запрос к БД SQL-запроса. yii\db\Command
refreshTableSchema() Обновляет схему таблицы, которая была помечена requireTableSchemaRefresh() yii\db\Command
requireTableSchemaRefresh() Помечает указанную схему таблицы для обновления после выполнения команды. yii\db\Command

Подробное описание свойств

$db общественное свойство

Подключение к Sphinx, с которым связана эта команда.

public yii\sphinx\Connection $db = null

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

addColumn() общедоступный метод

Создаёт SQL-команду для добавления нового столбца БД.

public $this addColumn ( $table, $column, $type )
$table строка

Таблица, к которой будет добавлен новый столбец. Имя таблицы будет корректно обрамлено кавычками методом.

$column строка

Имя нового столбца. Имя будет корректно обрамлено кавычками методом.

$type строка

Тип столбца. Метод yii\db\QueryBuilder::getColumnType() будет вызван для преобразования заданного типа столбца в физический. Например, string будет преобразован в varchar(255), а string not null в varchar(255) not null.

return $this

Объект команды.

addForeignKey() общедоступный метод

Создаёт SQL-команду для добавления внешнего ключа к существующей таблице.

Метод корректно обрамит имена таблиц и столбцов.

public $this addForeignKey ( $name, $table, $columns, $refTable, $refColumns, $delete = null, $update = null )
$name строка

Имя внешнего ключа.

$table строка

Таблица, к которой будет добавлен внешний ключ.

$columns строка|массив

Имя столбца, к которому будет добавлен ограничение. Если столбцов несколько, разделите их запятыми.

$refTable строка

Таблица, к которой ссылается внешний ключ.

$refColumns строка|массив

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

$delete строка

Параметр ON DELETE. Большинство СУБД поддерживают следующие значения: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL

$update строка

Параметр ON UPDATE. Большинство СУБД поддерживают следующие значения: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL

return $this

Объект команды.

addPrimaryKey() общедоступный метод

Создаёт SQL-команду для добавления ограничения первичного ключа к существующей таблице.

Метод корректно обрамит имена таблиц и столбцов.

public $this addPrimaryKey ( $name, $table, $columns )
$name строка

Имя ограничения первичного ключа.

$table строка

Таблица, к которой будет добавлено ограничение первичного ключа.

$columns строка|массив

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

return $this

Объект команды.

alterColumn() общедоступный метод

Создаёт SQL-команду для изменения определения столбца.

public $this alterColumn ( $table, $column, $type )
$table строка

Таблица, столбец которой требуется изменить. Имя таблицы будет корректно обрамлено кавычками методом.

$column строка

Имя изменяемого столбца. Имя будет корректно обрамлено кавычками методом.

$type строка

Тип столбца. Метод yii\db\QueryBuilder::getColumnType() будет вызван для преобразования заданного типа столбца в физический. Например, string будет преобразован в varchar(255), а string not null в varchar(255) not null.

return $this

Объект команды.

batchInsert() общедоступный метод

Создаёт команду пакетной вставки.

Например,

$connection->createCommand()->batchInsert('idx_user', ['name', 'age'], [
    ['Tom', 30],
    ['Jane', 20],
    ['Linda', 25],
])->execute();

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

public $this batchInsert ( $index, $columns, $rows )
$index строка

Индекс, в который будут добавлены новые строки.

$columns массив

Имена столбцов.

$rows массив

Строки, которые будут добавлены в индекс.

return $this

Объект команды.

batchReplace() общедоступный метод

Создаёт команду пакетной замены.

Например,

$connection->createCommand()->batchReplace('idx_user', ['name', 'age'], [
    ['Tom', 30],
    ['Jane', 20],
    ['Linda', 25],
])->execute();

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

public $this batchReplace ( $index, $columns, $rows )
$index строка

Индекс, в котором будут заменены строки.

$columns массив

Имена столбцов.

$rows массив

Строки, которые будут заменены в индексе.

return $this

Объект команды.

bindValue() общедоступный метод

Связывает значение с параметром.

public $this bindValue ( $name, $value, $dataType = null )
$name строка|целое число

Идентификатор параметра. Для подготовленного оператора с именованными заменителем, это имя параметра в формате :name. Для подготовленного оператора с использованием вопросительных знаков, это индексированное значение параметра.

$value смешанный тип

Значение, которое нужно связать с параметром.

$dataType целое число

Тип данных SQL параметра. Если null, тип определяется типом PHP значения.

return $this

Выполняемая команда.

bindValues() общедоступный метод

Связывает список значений с соответствующими параметрами.

Аналогично bindValue(), но связывает несколько значений одновременно. Тип SQL каждого значения определяется типом PHP значения.

public $this bindValues ( $values )
$values массив

Связываемые значения. Должен быть ассоциативным массивом с именами параметров в качестве ключей и соответствующими значениями параметров, например [':name' => 'John', ':age' => 25]. По умолчанию тип PDO каждого значения определяется типом PHP значения. Вы можете явно указать тип PDO, используя массив: [value, type], например, [':name' => 'John', ':profile' => [$profile, \PDO::PARAM_LOB]].

return $this

Выполняемая команда.

callKeywords() общедоступный метод

Возвращает токенизированные и нормализованные формы ключевых слов, а также (необязательно) статистику ключевых слов.

public $this callKeywords ( $index, $text, $fetchStatistic = false )
$index строка

Имя индекса, из которого нужно взять параметры обработки текста.

$text строка

Текст для разбиения на ключевые слова.

$fetchStatistic логическое значение

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

return $this

Объект команды.

callSnippets() public method

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

public $this callSnippets ( $index, $source, $match, $options = [] )
$index string

Имя индекса, из которого берутся настройки обработки текста.

$source string|array

Источник данных для извлечения фрагмента. Может быть строкой или массивом строк.

$match string

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

$options array

Список параметров в формате: имяПараметра => значениеПараметра

return $this

Объект самого команды

checkIntegrity() public method

Создаёт SQL команду для включения или отключения проверки целостности.

public $this checkIntegrity ( $check = true, $schema = '', $table = '' )
$check boolean

Включить или отключить проверку целостности.

$schema string

Имя схемы таблиц. По умолчанию пустая строка, что означает текущую или по умолчанию схему.

$table string

Имя таблицы.

return $this

Объект самого команды

throws yii\base\NotSupportedException

если это не поддерживается основой СУБД

createIndex() public method

Создаёт SQL команду для создания нового индекса.

public $this createIndex ( $name, $table, $columns, $unique = false )
$name string

Имя индекса. Имя будет корректно обрамлено кавычками методом.

$table string

Таблица, для которой создаётся индекс. Имя таблицы будет корректно обрамлено кавычками методом.

$columns string|array

Столбец(ы), который(е) должен(ы) быть включён(ы) в индекс. Если столбцов несколько, разделите их запятыми. Имена столбцов будут корректно обрамлены кавычками методом.

$unique boolean

Добавить ограничение UNIQUE к созданному индексу.

return $this

Объект самого команды

createTable() public method

Создаёт SQL команду для создания новой таблицы БД.

Столбцы новой таблицы должны быть указаны как пары имя-определение (например, 'name' => 'string'), где имя — имя столбца, которое будет корректно обрамлено кавычками методом, а определение — тип столбца, который может содержать абстрактный тип БД. Метод yii\sphinx\QueryBuilder::getColumnType() будет вызван для преобразования абстрактных типов столбцов в физические. Например, string будет преобразовано в varchar(255), а string not null в varchar(255) not null.

Если столбец указан только с определением (например, 'PRIMARY KEY (name, type)'), он будет непосредственно вставлен в сгенерированный SQL.

public $this createTable ( $table, $columns, $options = null )
$table string

Имя таблицы, которая будет создана. Имя будет корректно обрамлено кавычками методом.

$columns array

Столбцы (имя => определение) в новой таблице.

$options string

Дополнительный SQL фрагмент, который будет добавлен к сгенерированному SQL.

return $this

Объект самого команды

dropColumn() public method

Создаёт SQL команду для удаления столбца БД.

public $this dropColumn ( $table, $column )
$table string

Таблица, из которой удаляется столбец. Имя будет корректно обрамлено кавычками методом.

$column string

Имя столбца, который нужно удалить. Имя будет корректно обрамлено кавычками методом.

return $this

Объект самого команды

dropForeignKey() public method

Создаёт SQL команду для удаления внешнего ключа.

public $this dropForeignKey ( $name, $table )
$name string

Имя внешнего ключа, который нужно удалить. Имя будет корректно обрамлено кавычками методом.

$table string

Таблица, из которой удаляется внешний ключ. Имя будет корректно обрамлено кавычками методом.

return $this

Объект самого команды

dropIndex() public method

Создаёт SQL команду для удаления индекса.

public $this dropIndex ( $name, $table )
$name string

Имя индекса, который нужно удалить. Имя будет корректно обрамлено кавычками методом.

$table string

Таблица, из которой удаляется индекс. Имя будет корректно обрамлено кавычками методом.

return $this

Объект самого команды

dropPrimaryKey() public method

Создаёт SQL команду для удаления ограничения первичного ключа.

public $this dropPrimaryKey ( $name, $table )
$name string

Имя ограничения первичного ключа, которое нужно удалить.

$table string

Таблица, из которой нужно удалить ограничение первичного ключа.

return $this

Объект самого команды

dropTable() public method

Создаёт SQL команду для удаления таблицы БД.

public $this dropTable ( $table )
$table string

Таблица, которая будет удалена. Имя будет корректно обрамлено кавычками методом.

return $this

Объект самого команды

prepare() public method

Подготавливает SQL запрос к выполнению.

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

public void prepare ( $forRead = null )
$forRead boolean

Вызывается ли этот метод для запроса чтения. Если null, это означает, что SQL запрос должен быть использован для определения, является ли он для чтения или записи.

throws yii\db\Exception

если есть какая-либо ошибка БД

renameColumn() public method

Создаёт SQL команду для переименования столбца.

public $this переименоватьСтолбец ( $table, $oldName, $newName )
$table string

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

$oldName string

Старое имя столбца. Имя будет правильно обрамлено кавычками методом.

$newName string

Новое имя столбца. Имя будет правильно обрамлено кавычками методом.

return $this

Сам объект команды

переименоватьТаблицу() public method

Создаёт SQL-команду для переименования таблицы БД.

public $this переименоватьТаблицу ( $table, $newName )
$table string

Таблица, которую нужно переименовать. Имя будет правильно обрамлено кавычками методом.

$newName string

Новое имя таблицы. Имя будет правильно обрамлено кавычками методом.

return $this

Сам объект команды

заменить() public method

Создаёт команду REPLACE.

Например,

$connection->createCommand()->replace('idx_user', [
    'name' => 'Sam',
    'age' => 30,
])->execute();

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

Обратите внимание, что созданная команда не выполняется до тех пор, пока не будет вызван execute().

public $this заменить ( $index, $columns )
$index string

Индекс, в который будут заменены новые строки.

$columns array

Данные столбцов (имя => значение), которые будут заменены в индексе.

return $this

Сам объект команды

сброситьПоследовательность() public method

Создаёт SQL-команду для сброса значения последовательности первичного ключа таблицы.

Последовательность будет сброшена таким образом, чтобы первичный ключ следующей новой вставленной строки имел указанное значение или 1.

public $this сброситьПоследовательность ( $table, $value = null )
$table string

Имя таблицы, последовательность первичного ключа которой нужно сбросить

$value mixed

Значение первичного ключа следующей новой вставленной строки. Если это не задано, первичный ключ следующей новой строки будет иметь значение 1.

return $this

Сам объект команды

throws yii\base\NotSupportedException

если это не поддерживается основой СУБД

обнулитьИндекс() public method

Создаёт SQL-команду для обнуления временного индекса.

public $this обнулитьИндекс ( $index )
$index string

Индекс, который нужно обнулить. Имя будет правильно обрамлено кавычками методом.

return $this

Сам объект команды

обнулитьТаблицу() public method

Создаёт SQL-команду для обнуления таблицы БД.

public $this обнулитьТаблицу ( $table )
$table string

Таблица, которую нужно обнулить. Имя будет правильно обрамлено кавычками методом.

return $this

Сам объект команды

обновить() public method

Создаёт команду UPDATE.

Например,

$connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();

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

Обратите внимание, что созданная команда не выполняется до тех пор, пока не будет вызван execute().

public $this обновить ( $index, $columns, $condition = '', $params = [], $options = [] )
$index string

Индекс, который нужно обновить.

$columns array

Данные столбцов (имя => значение), которые нужно обновить.

$condition string|array

Условие, которое будет помещено в часть WHERE. Обратитесь к yii\sphinx\Query::where(), чтобы узнать, как указать условие.

$params array

Параметры, которые нужно привязать к команде

$options array

Список опций в формате: имяОпции => значениеОпции

return $this

Сам объект команды

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-sphinx-command.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API