Class yii\sphinx\Command
Inheritance | yii\sphinx\Command » yii\db\Command » yii\base\Component » yii\base\Object |
---|---|
Implements | yii\base\Configurable |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2-sphinx/blob/master/Command.php |
Command represents a SQL statement to be executed against a Sphinx.
A command object is usually created by calling yii\sphinx\Connection::createCommand(). The SQL statement it represents can be set via the $sql property.
To execute a non-query SQL (such as INSERT, REPLACE, DELETE, UPDATE), call execute(). To execute a SQL statement that returns result data set (such as SELECT, CALL SNIPPETS, CALL KEYWORDS), use queryAll(), queryOne(), queryColumn(), queryScalar(), or query(). For example,
$articles = $connection->createCommand("SELECT * FROM `idx_article` WHERE MATCH('programming')")->queryAll();
Command supports SQL statement preparation and parameter binding just as yii\db\Command does.
Command also supports building SQL statements by providing methods such as insert(), update(), etc. For example,
$connection->createCommand()->update('idx_article', [
'genre_id' => 15,
'author_id' => 157,
])->execute();
To build SELECT SQL statements, please use yii\sphinx\Query and yii\sphinx\QueryBuilder instead.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
$db | yii\sphinx\Connection | The Sphinx connection that this command is associated with. | yii\sphinx\Command |
$fetchMode | integer | The default fetch mode for this command. | yii\db\Command |
$params | array | The parameters (name => value) that are bound to the current PDO statement. | yii\db\Command |
$pdoStatement | PDOStatement | The PDOStatement object that this command is associated with | yii\db\Command |
$queryCacheDependency | yii\caching\Dependency | The dependency to be associated with the cached query result for this command | yii\db\Command |
$queryCacheDuration | integer | The default number of seconds that query results can remain valid in cache. | yii\db\Command |
$rawSql | string | The raw SQL with parameter values inserted into the corresponding placeholders in $sql. | yii\db\Command |
$sql | string | The SQL statement to be executed | yii\db\Command |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\Object |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
addColumn() | Creates a SQL command for adding a new DB column. | yii\sphinx\Command |
addForeignKey() | Creates a SQL command for adding a foreign key constraint to an existing table. | yii\sphinx\Command |
addPrimaryKey() | Creates a SQL command for adding a primary key constraint to an existing table. | yii\sphinx\Command |
alterColumn() | Creates a SQL command for changing the definition of a column. | yii\sphinx\Command |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
batchInsert() | Creates a batch INSERT command. | yii\sphinx\Command |
batchReplace() | Creates a batch REPLACE command. | yii\sphinx\Command |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
bindParam() | Binds a parameter to the SQL statement to be executed. | yii\db\Command |
bindValue() | Binds a value to a parameter. | yii\db\Command |
bindValues() | Binds a list of values to the corresponding parameters. | yii\db\Command |
cache() | Enables query cache for this command. | yii\db\Command |
callKeywords() | Returns tokenized and normalized forms of the keywords, and, optionally, keyword statistics. | yii\sphinx\Command |
callSnippets() | Builds a snippet from provided data and query, using specified index settings. | yii\sphinx\Command |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
cancel() | Cancels the execution of the SQL statement. | yii\db\Command |
checkIntegrity() | Builds a SQL command for enabling or disabling integrity check. | yii\sphinx\Command |
className() | Returns the fully qualified name of this class. | yii\base\Object |
createIndex() | Creates a SQL command for creating a new index. | yii\sphinx\Command |
createTable() | Creates a SQL command for creating a new DB table. | yii\sphinx\Command |
delete() | Creates a DELETE command. | yii\db\Command |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
dropColumn() | Creates a SQL command for dropping a DB column. | yii\sphinx\Command |
dropForeignKey() | Creates a SQL command for dropping a foreign key constraint. | yii\sphinx\Command |
dropIndex() | Creates a SQL command for dropping an index. | yii\sphinx\Command |
dropPrimaryKey() | Creates a SQL command for removing a primary key constraint to an existing table. | yii\sphinx\Command |
dropTable() | Creates a SQL command for dropping a DB table. | yii\sphinx\Command |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
execute() | Executes the SQL statement. | yii\db\Command |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getRawSql() | Returns the raw SQL by inserting parameter values into the corresponding placeholders in $sql. | yii\db\Command |
getSql() | Returns the SQL statement for this command. | yii\db\Command |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the object. | yii\base\Object |
insert() | Creates an INSERT command. | yii\db\Command |
noCache() | Disables query cache for this command. | yii\db\Command |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
prepare() | Prepares the SQL statement to be executed. | yii\db\Command |
query() | Executes the SQL statement and returns query result. | yii\db\Command |
queryAll() | Executes the SQL statement and returns ALL rows at once. | yii\db\Command |
queryColumn() | Executes the SQL statement and returns the first column of the result. | yii\db\Command |
queryOne() | Executes the SQL statement and returns the first row of the result. | yii\db\Command |
queryScalar() | Executes the SQL statement and returns the value of the first column in the first row of data. | yii\db\Command |
renameColumn() | Creates a SQL command for renaming a column. | yii\sphinx\Command |
renameTable() | Creates a SQL command for renaming a DB table. | yii\sphinx\Command |
replace() | Creates an REPLACE command. | yii\sphinx\Command |
resetSequence() | Creates a SQL command for resetting the sequence value of a table's primary key. | yii\sphinx\Command |
setSql() | Specifies the SQL statement to be executed. | yii\db\Command |
trigger() | Triggers an event. | yii\base\Component |
truncateIndex() | Creates a SQL command for truncating a runtime index. | yii\sphinx\Command |
truncateTable() | Creates a SQL command for truncating a DB table. | yii\sphinx\Command |
update() | Creates an UPDATE command. | yii\sphinx\Command |
Protected Methods
Method | Description | Defined By |
---|---|---|
bindPendingParams() | Binds pending parameters that were registered via bindValue() and bindValues(). | yii\db\Command |
queryInternal() | Performs the actual DB query of a SQL statement. | yii\db\Command |
refreshTableSchema() | Refreshes table schema, which was marked by \yii\db\requireTableSchemaRefreshment() | yii\db\Command |
requireTableSchemaRefresh() | Marks specified table schema to be refreshed after command execution. | yii\db\Command |
Property Details
The Sphinx connection that this command is associated with.
Method Details
Creates a SQL command for adding a new DB column.
$this addColumn( $table, $column, $type ) | ||
$table | string | The table that the new column will be added to. The table name will be properly quoted by the method. |
$column | string | The name of the new column. The name will be properly quoted by the method. |
$type | string | The column type. yii\db\QueryBuilder::getColumnType() will be called
to convert the give column type to the physical one. For example, |
return | $this | The command object itself |
---|
Creates a SQL command for adding a foreign key constraint to an existing table.
The method will properly quote the table and column names.
$this addForeignKey( $name, $table, $columns, $refTable, $refColumns, $delete = null, $update = null ) | ||
$name | string | The name of the foreign key constraint. |
$table | string | The table that the foreign key constraint will be added to. |
$columns | string|array | The name of the column to that the constraint will be added on. If there are multiple columns, separate them with commas. |
$refTable | string | The table that the foreign key references to. |
$refColumns | string|array | The name of the column that the foreign key references to. If there are multiple columns, separate them with commas. |
$delete | string | The ON DELETE option. Most DBMS support these options: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL |
$update | string | The ON UPDATE option. Most DBMS support these options: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL |
return | $this | The command object itself |
---|
Creates a SQL command for adding a primary key constraint to an existing table.
The method will properly quote the table and column names.
$this addPrimaryKey( $name, $table, $columns ) | ||
$name | string | The name of the primary key constraint. |
$table | string | The table that the primary key constraint will be added to. |
$columns | string|array | Comma separated string or array of columns that the primary key will consist of. |
return | $this | The command object itself. |
---|
Creates a SQL command for changing the definition of a column.
$this alterColumn( $table, $column, $type ) | ||
$table | string | The table whose column is to be changed. The table name will be properly quoted by the method. |
$column | string | The name of the column to be changed. The name will be properly quoted by the method. |
$type | string | The column type. yii\db\QueryBuilder::getColumnType() will be called
to convert the give column type to the physical one. For example, |
return | $this | The command object itself |
---|
Creates a batch INSERT command.
For example,
$connection->createCommand()->batchInsert('idx_user', ['name', 'age'], [
['Tom', 30],
['Jane', 20],
['Linda', 25],
])->execute();
Note that the values in each row must match the corresponding column names.
static batchInsert( $index, $columns, $rows ) | ||
$index | string | The index that new rows will be inserted into. |
$columns | array | The column names |
$rows | array | The rows to be batch inserted into the index |
return | static | The command object itself |
---|
Creates a batch REPLACE command.
For example,
$connection->createCommand()->batchInsert('idx_user', ['name', 'age'], [
['Tom', 30],
['Jane', 20],
['Linda', 25],
])->execute();
Note that the values in each row must match the corresponding column names.
static batchReplace( $index, $columns, $rows ) | ||
$index | string | The index that new rows will be replaced. |
$columns | array | The column names |
$rows | array | The rows to be batch replaced in the index |
return | static | The command object itself |
---|
Returns tokenized and normalized forms of the keywords, and, optionally, keyword statistics.
static callKeywords( $index, $text, $fetchStatistic = false ) | ||
$index | string | The name of the index from which to take the text processing settings |
$text | string | The text to break down to keywords. |
$fetchStatistic | boolean | Whether to return document and hit occurrence statistics |
return | static | The command object itself |
---|
Builds a snippet from provided data and query, using specified index settings.
static callSnippets( $index, $source, $match, $options = [] ) | ||
$index | string | Name of the index, from which to take the text processing settings. |
$source | string|array | Is the source data to extract a snippet from. It could be either a single string or array of strings. |
$match | string | The full-text query to build snippets for. |
$options | array | List of options in format: optionName => optionValue |
return | static | The command object itself |
---|
Builds a SQL command for enabling or disabling integrity check.
$this checkIntegrity( $check = true, $schema = '', $table = '' ) | ||
$check | boolean | Whether to turn on or off the integrity check. |
$schema | string | The schema name of the tables. Defaults to empty string, meaning the current or default schema. |
$table | string | The table name. |
return | $this | The command object itself |
---|---|---|
throws | yii\base\NotSupportedException | if this is not supported by the underlying DBMS |
Creates a SQL command for creating a new index.
$this createIndex( $name, $table, $columns, $unique = false ) | ||
$name | string | The name of the index. The name will be properly quoted by the method. |
$table | string | The table that the new index will be created for. The table name will be properly quoted by the method. |
$columns | string|array | The column(s) that should be included in the index. If there are multiple columns, please separate them by commas. The column names will be properly quoted by the method. |
$unique | boolean | Whether to add UNIQUE constraint on the created index. |
return | $this | The command object itself |
---|
Creates a SQL command for creating a new DB table.
The columns in the new table should be specified as name-definition pairs (e.g. 'name' => 'string'),
where name stands for a column name which will be properly quoted by the method, and definition
stands for the column type which can contain an abstract DB type.
The method yii\sphinx\QueryBuilder::getColumnType() will be called
to convert the abstract column types to physical ones. For example, string
will be converted
as varchar(255)
, and string not null
becomes varchar(255) not null
.
If a column is specified with definition only (e.g. 'PRIMARY KEY (name, type)'), it will be directly inserted into the generated SQL.
$this createTable( $table, $columns, $options = null ) | ||
$table | string | The name of the table to be created. The name will be properly quoted by the method. |
$columns | array | The columns (name => definition) in the new table. |
$options | string | Additional SQL fragment that will be appended to the generated SQL. |
return | $this | The command object itself |
---|
Creates a SQL command for dropping a DB column.
$this dropColumn( $table, $column ) | ||
$table | string | The table whose column is to be dropped. The name will be properly quoted by the method. |
$column | string | The name of the column to be dropped. The name will be properly quoted by the method. |
return | $this | The command object itself |
---|
Creates a SQL command for dropping a foreign key constraint.
$this dropForeignKey( $name, $table ) | ||
$name | string | The name of the foreign key constraint to be dropped. The name will be properly quoted by the method. |
$table | string | The table whose foreign is to be dropped. The name will be properly quoted by the method. |
return | $this | The command object itself |
---|
Creates a SQL command for dropping an index.
$this dropIndex( $name, $table ) | ||
$name | string | The name of the index to be dropped. The name will be properly quoted by the method. |
$table | string | The table whose index is to be dropped. The name will be properly quoted by the method. |
return | $this | The command object itself |
---|
Creates a SQL command for removing a primary key constraint to an existing table.
$this dropPrimaryKey( $name, $table ) | ||
$name | string | The name of the primary key constraint to be removed. |
$table | string | The table that the primary key constraint will be removed from. |
return | $this | The command object itself |
---|
Creates a SQL command for dropping a DB table.
$this dropTable( $table ) | ||
$table | string | The table to be dropped. The name will be properly quoted by the method. |
return | $this | The command object itself |
---|
Creates a SQL command for renaming a column.
$this renameColumn( $table, $oldName, $newName ) | ||
$table | string | The table whose column is to be renamed. The name will be properly quoted by the method. |
$oldName | string | The old name of the column. The name will be properly quoted by the method. |
$newName | string | The new name of the column. The name will be properly quoted by the method. |
return | $this | The command object itself |
---|
Creates a SQL command for renaming a DB table.
$this renameTable( $table, $newName ) | ||
$table | string | The table to be renamed. The name will be properly quoted by the method. |
$newName | string | The new table name. The name will be properly quoted by the method. |
return | $this | The command object itself |
---|
Creates an REPLACE command.
For example,
$connection->createCommand()->insert('idx_user', [
'name' => 'Sam',
'age' => 30,
])->execute();
The method will properly escape the column names, and bind the values to be replaced.
Note that the created command is not executed until execute() is called.
static replace( $index, $columns ) | ||
$index | string | The index that new rows will be replaced into. |
$columns | array | The column data (name => value) to be replaced into the index. |
return | static | The command object itself |
---|
Creates a SQL command for resetting the sequence value of a table's primary key.
The sequence will be reset such that the primary key of the next new row inserted will have the specified value or 1.
$this resetSequence( $table, $value = null ) | ||
$table | string | The name of the table whose primary key sequence will be reset |
$value | mixed | The value for the primary key of the next new row inserted. If this is not set, the next new row's primary key will have a value 1. |
return | $this | The command object itself |
---|---|---|
throws | yii\base\NotSupportedException | if this is not supported by the underlying DBMS |
Creates a SQL command for truncating a runtime index.
static truncateIndex( $index ) | ||
$index | string | The index to be truncated. The name will be properly quoted by the method. |
return | static | The command object itself |
---|
Creates a SQL command for truncating a DB table.
$this truncateTable( $table ) | ||
$table | string | The table to be truncated. The name will be properly quoted by the method. |
return | $this | The command object itself |
---|
Creates an UPDATE command.
For example,
$connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();
The method will properly escape the column names and bind the values to be updated.
Note that the created command is not executed until execute() is called.
static update( $index, $columns, $condition = '', $params = [], $options = [] ) | ||
$index | string | The index to be updated. |
$columns | array | The column data (name => value) to be updated. |
$condition | string|array | The condition that will be put in the WHERE part. Please refer to yii\sphinx\Query::where() on how to specify condition. |
$params | array | The parameters to be bound to the command |
$options | array | List of options in format: optionName => optionValue |
return | static | The command object itself |
---|