CDbMigration
| Пакет | system.db |
|---|---|
| Наследование | абстрактный класс CDbMigration » CComponent |
| С момента | 1.1.6 |
| Исходный код | framework/db/CDbMigration.php |
CDbMigration предназначен для совместного использования с командой «yiic migrate».
Каждый дочерний класс CDbMigration представляет отдельную миграцию базы данных, которая идентифицируется именем дочернего класса.
Внутри каждой миграции метод up содержит логику «обновления» базы данных, используемой в приложении, а метод down содержит логику «отката». Команда «yiic migrate» управляет всеми доступными миграциями в приложении.
Переопределяя методы safeUp или safeDown вместо up и down, логика миграции будет обернута транзакцией базы данных.
CDbMigration предоставляет набор удобных методов для управления данными и схемой базы данных. Например, метод insert может использоваться для лёгкой вставки строки данных в таблицу базы данных; метод createTable может использоваться для создания таблицы базы данных. По сравнению с аналогичными методами в CDbCommand, эти методы отобразят дополнительную информацию, показывающую параметры метода и время выполнения, что может быть полезно при применении миграций.
Свойства Public
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| dbConnection | CDbConnection | Возвращает текущее активное подключение к базе данных. | CDbMigration |
Общедоступные методы
| Метод | Описание | Определён в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| addColumn() | Строит и выполняет SQL-запрос для добавления новой колонки в БД. | CDbMigration |
| addForeignKey() | Строит SQL-запрос для добавления ограничения внешнего ключа к существующей таблице. | CDbMigration |
| addPrimaryKey() | Строит и выполняет SQL-запрос для создания первичного ключа, поддерживает составные первичные ключи. | CDbMigration |
| alterColumn() | Строит и выполняет SQL-запрос для изменения определения колонки. | CDbMigration |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик события к событию. | CComponent |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createIndex() | Строит и выполняет SQL-запрос для создания нового индекса. | CDbMigration |
| createTable() | Строит и выполняет SQL-запрос для создания новой таблицы БД. | CDbMigration |
| delete() | Создаёт и выполняет DELETE SQL-запрос. | CDbMigration |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик события. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все поведения, присоединённые к этому компоненту. | CComponent |
| down() | Этот метод содержит логику, выполняемую при удалении этой миграции. | CDbMigration |
| dropColumn() | Строит и выполняет SQL-запрос для удаления колонки БД. | CDbMigration |
| dropForeignKey() | Строит SQL-запрос для удаления ограничения внешнего ключа. | CDbMigration |
| dropIndex() | Строит и выполняет SQL-запрос для удаления индекса. | CDbMigration |
| dropPrimaryKey() | Строит и выполняет SQL-запрос для удаления первичного ключа, поддерживает составные первичные ключи. | CDbMigration |
| dropTable() | Строит и выполняет SQL-запрос для удаления таблицы БД. | CDbMigration |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые к этому компоненту поведения. | CComponent |
| evaluateExpression() | Вычисляет PHP выражение или обратный вызов в контексте этого компонента. | CComponent |
| execute() | Выполняет SQL-запрос. | CDbMigration |
| getDbConnection() | Возвращает текущее активное подключение к базе данных. | CDbMigration |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли присоединённые обработчики для именованного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| insert() | Создаёт и выполняет INSERT SQL-запрос. | CDbMigration |
| insertMultiple() | Создаёт и выполняет INSERT SQL-запрос с несколькими данными. | CDbMigration |
| raiseEvent() | Вызывает событие. | CComponent |
| refreshTableSchema() | Обновляет кэш схемы таблицы | CDbMigration |
| renameColumn() | Строит и выполняет SQL-запрос для переименования колонки. | CDbMigration |
| renameTable() | Строит и выполняет SQL-запрос для переименования таблицы БД. | CDbMigration |
| safeDown() | Этот метод содержит логику, выполняемую при удалении этой миграции. | CDbMigration |
| safeUp() | Этот метод содержит логику, выполняемую при применении этой миграции. | CDbMigration |
| setDbConnection() | Устанавливает текущее активное подключение к базе данных. | CDbMigration |
| truncateTable() | Строит и выполняет SQL-запрос для усечения таблицы БД. | CDbMigration |
| up() | Этот метод содержит логику, выполняемую при применении этой миграции. | CDbMigration |
| update() | Создаёт и выполняет UPDATE SQL-запрос. | CDbMigration |
Подробное описание свойств
dbConnection свойство
public CDbConnection getDbConnection()
public void setDbConnection(CDbConnection $db)
Возвращает текущее активное подключение к базе данных. По умолчанию возвращается и активируется компонент приложения 'db'. Вы можете вызвать setDbConnection, чтобы переключиться на другое подключение к базе данных. Методы, такие как insert, createTable, будут использовать это подключение для выполнения запросов к БД.
Подробное описание методов
addColumn() метод
public void addColumn(string $table, string $column, string $type) | ||
| $table | string | таблица, к которой будет добавлена новая колонка. Имя таблицы будет корректно обрамлено кавычками методом. |
| $column | string | имя новой колонки. Имя будет корректно обрамлено кавычками методом. |
| $type | string | тип колонки. Метод getColumnType будет вызван для преобразования абстрактного типа колонки (если таковой имеется) в физический. Всё, что не распознаётся как абстрактный тип, останется в сгенерированном SQL. Например, 'string' будет преобразовано в 'varchar(255)', а 'string not null' в 'varchar(255) not null'. |
public function addColumn($table, $column, $type)
{
echo " > add column $column$type to table $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->addColumn($table, $column, $type);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для добавления нового столбца в базу данных.
addForeignKey() метод
public void addForeignKey(string $name, string $table, string|array $columns, string $refTable, string|array $refColumns, string $delete=NULL, string $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 |
public function addForeignKey($name, $table, $columns, $refTable, $refColumns, $delete=null, $update=null)
{
echo " > add foreign key $name: $table (".(is_array($columns) ? implode(',', $columns) : $columns).
") references $refTable (".(is_array($refColumns) ? implode(',', $refColumns) : $refColumns).") ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->addForeignKey($name, $table, $columns, $refTable, $refColumns, $delete, $update);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт SQL-запрос для добавления ограничения внешнего ключа к существующей таблице. Метод корректно обрамляет имена таблиц и столбцов в кавычки.
addPrimaryKey() метод (доступен начиная с v1.1.13)
public void addPrimaryKey(string $name, string $table, string|array $columns) | ||
| $name | строка | имя ограничения первичного ключа для добавления |
| $table | строка | имя таблицы, к которой будет добавлен первичный ключ |
| $columns | строка|массив | строка со столбцами, разделёнными запятыми, или массив имён столбцов, составляющих первичный ключ. Массив доступен с версии 1.1.14. |
public function addPrimaryKey($name,$table,$columns)
{
echo " > alter table $table add constraint $name primary key (".(is_array($columns) ? implode(',', $columns) : $columns).") ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->addPrimaryKey($name,$table,$columns);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для создания первичного ключа, поддерживает составные первичные ключи.
alterColumn() метод
public void alterColumn(string $table, string $column, string $type) | ||
| $table | строка | таблица, столбец которой нужно изменить. Имя таблицы будет корректно обрамлено в кавычки методом. |
| $column | строка | имя столбца, который нужно изменить. Имя будет корректно обрамлено в кавычки методом. |
| $type | строка | новый тип столбца. Будет вызван метод getColumnType для преобразования абстрактного типа столбца (если есть) в физический. Всё, что не распознаётся как абстрактный тип, сохранится в сгенерированном SQL. Например, 'string' преобразуется в 'varchar(255)', а 'string not null' — в 'varchar(255) not null'. |
public function alterColumn($table, $column, $type)
{
echo " > alter column $column in table $table to $type ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->alterColumn($table, $column, $type);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для изменения определения столбца.
createIndex() метод
public void createIndex(string $name, string $table, string|array $columns, boolean $unique=false) | ||
| $name | строка | имя индекса. Имя будет корректно обрамлено в кавычки методом. |
| $table | строка | таблица, для которой будет создан новый индекс. Имя таблицы будет корректно обрамлено в кавычки методом. |
| $columns | строка|массив | столбец(ы), которые должны быть включены в индекс. Если столбцов несколько, разделяйте их запятыми или передавайте массив имён столбцов. Каждое имя столбца будет обрамлено в кавычки методом, если в имени не будет найдено скобок. |
| $unique | логическое | указывает, нужно ли добавить ограничение UNIQUE на созданный индекс. |
public function createIndex($name, $table, $columns, $unique=false)
{
echo " > create".($unique ? ' unique':'')." index $name on $table (".(is_array($columns) ? implode(',', $columns) : $columns).") ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->createIndex($name, $table, $columns, $unique);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для создания нового индекса.
createTable() метод
public void createTable(string $table, array $columns, string $options=NULL) | ||
| $table | строка | имя создаваемой таблицы. Имя будет корректно обрамлено в кавычки методом. |
| $columns | массив | столбцы (имя=>определение) в новой таблице. |
| $options | строка | дополнительный фрагмент SQL, который будет добавлен к сгенерированному SQL-запросу. |
public function createTable($table, $columns, $options=null)
{
echo " > create table $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->createTable($table, $columns, $options);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для создания новой таблицы в базе данных.
Столбцы новой таблицы должны быть заданы в виде пар имя-определение (например, 'name'=>'string'), где имя — имя столбца (корректно обрамляется в кавычки методом), а определение — тип столбца, который может содержать абстрактный тип БД. Метод getColumnType будет вызван для преобразования любого абстрактного типа в физический.
Если столбец задан только определением (например, 'PRIMARY KEY (name, type)'), он будет непосредственно вставлен в сгенерированный SQL.
delete() метод
public void delete(string $table, mixed $conditions='', array $params=array ( )) | ||
| $table | строка | таблица, из которой будут удалены данные. |
| $conditions | смешанный тип | условия, которые будут использованы в части WHERE. Обратитесь к CDbCommand::where для получения информации о том, как задавать условия. |
| $params | массив | параметры, которые будут связаны с запросом. |
public function delete($table, $conditions='', $params=array())
{
echo " > delete from $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->delete($table, $conditions, $params);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос DELETE.
down() метод
public boolean down() | ||
| {return} | логическое | Возвращение false означает, что миграция не будет применена. |
public function down()
{
$transaction=$this->getDbConnection()->beginTransaction();
try
{
if($this->safeDown()===false)
{
$transaction->rollback();
return false;
}
$transaction->commit();
}
catch(Exception $e)
{
echo "Exception: ".$e->getMessage().' ('.$e->getFile().':'.$e->getLine().")\n";
echo $e->getTraceAsString()."\n";
$transaction->rollback();
return false;
}
}
Этот метод содержит логику, которая выполняется при удалении этой миграции. Дочерние классы могут переопределить этот метод, если соответствующие миграции можно удалить.
dropColumn() метод
public void dropColumn(string $table, string $column) | ||
| $table | строка | таблица, столбец которой нужно удалить. Имя таблицы будет корректно обрамлено в кавычки методом. |
| $column | строка | имя столбца, который нужно удалить. Имя будет корректно обрамлено в кавычки методом. |
public function dropColumn($table, $column)
{
echo " > drop column $column from table $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->dropColumn($table, $column);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для удаления столбца из базы данных.
dropForeignKey() метод
public void dropForeignKey(string $name, string $table) | ||
| $name | строка | имя ограничения внешнего ключа, которое нужно удалить. Имя будет корректно обрамлено в кавычки методом. |
| $table | строка | таблица, из которой нужно удалить ограничение внешнего ключа. Имя таблицы будет корректно обрамлено в кавычки методом. |
public function dropForeignKey($name, $table)
{
echo " > drop foreign key $name from table $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->dropForeignKey($name, $table);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт SQL-запрос для удаления ограничения внешнего ключа.
dropIndex() метод
public void dropIndex(string $name, string $table) | ||
| $name | строка | имя индекса, который нужно удалить. Имя будет корректно обрамлено кавычками методом. |
| $table | строка | таблица, из которой нужно удалить индекс. Имя будет корректно обрамлено кавычками методом. |
public function dropIndex($name, $table)
{
echo " > drop index $name ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->dropIndex($name, $table);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для удаления индекса.
dropPrimaryKey() метод (доступен с версии v1.1.13)
public void dropPrimaryKey(string $name, string $table) | ||
| $name | строка | имя ограничения, которое нужно удалить |
| $table | строка | имя таблицы, из которой нужно удалить первичный ключ |
public function dropPrimaryKey($name,$table)
{
echo " > alter table $table drop primary key $name ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->dropPrimaryKey($name,$table);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для удаления первичного ключа, поддерживает составные первичные ключи.
dropTable() метод
public void dropTable(string $table) | ||
| $table | строка | таблица, которую нужно удалить. Имя будет корректно обрамлено кавычками методом. |
public function dropTable($table)
{
echo " > drop table $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->dropTable($table);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для удаления таблицы БД.
execute() метод (доступен с версии v1.1.7)
public void execute(string $sql, array $params=array ( )) | ||
| $sql | строка | SQL-запрос, который нужно выполнить |
| $params | массив | входные параметры (имя=>значение) для выполнения SQL-запроса. См. CDbCommand::execute для получения более подробной информации. |
public function execute($sql, $params=array())
{
echo " > execute SQL: $sql ...";
$time=microtime(true);
$this->getDbConnection()->createCommand($sql)->execute($params);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Выполняет SQL-запрос. Этот метод выполняет указанный SQL-запрос с помощью dbConnection.
getDbConnection() метод
public CDbConnection getDbConnection() | ||
| {return} | CDbConnection | текущее активное подключение к базе данных |
public function getDbConnection()
{
if($this->_db===null)
{
$this->_db=Yii::app()->getComponent('db');
if(!$this->_db instanceof CDbConnection)
throw new CException(Yii::t('yii', 'The "db" application component must be configured to be a CDbConnection object.'));
}
return $this->_db;
}
Возвращает текущее активное подключение к базе данных. По умолчанию возвращается и активируется компонент приложения 'db'. Вы можете вызвать setDbConnection, чтобы переключиться на другое подключение к базе данных. Методы, такие как insert, createTable, будут использовать это подключение к базе данных для выполнения запросов к БД.
insert() метод
public void insert(string $table, array $columns) | ||
| $table | строка | таблица, в которую будут добавлены новые строки. |
| $columns | массив | данные столбцов (имя=>значение), которые нужно добавить в таблицу. |
public function insert($table, $columns)
{
echo " > insert into $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->insert($table, $columns);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос INSERT. Метод корректно экранирует имена столбцов и связывает значения для вставки.
insertMultiple() метод (доступен с версии v1.1.16)
public void insertMultiple(string $table, array $data) | ||
| $table | строка | таблица, в которую будут добавлены новые строки. |
| $data | массив | массив различных данных столбцов (имя=>значение) для вставки в таблицу. |
public function insertMultiple($table, $data)
{
echo " > insert into $table ...";
$time=microtime(true);
$builder=$this->getDbConnection()->getSchema()->getCommandBuilder();
$command=$builder->createMultipleInsertCommand($table,$data);
$command->execute();
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос INSERT с множественными данными. Метод корректно экранирует имена столбцов и связывает значения для вставки.
refreshTableSchema() метод (доступен с версии v1.1.9)
public void refreshTableSchema(string $table) | ||
| $table | строка | имя таблицы для обновления |
public function refreshTableSchema($table)
{
echo " > refresh table $table schema cache ...";
$time=microtime(true);
$this->getDbConnection()->getSchema()->getTable($table,true);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Обновляет кеш схемы таблицы
renameColumn() метод
public void renameColumn(string $table, string $name, string $newName) | ||
| $table | строка | таблица, столбец которой нужно переименовать. Имя будет корректно обрамлено кавычками методом. |
| $name | строка | старое имя столбца. Имя будет корректно обрамлено кавычками методом. |
| $newName | строка | новое имя столбца. Имя будет корректно обрамлено кавычками методом. |
public function renameColumn($table, $name, $newName)
{
echo " > rename column $name in table $table to $newName ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->renameColumn($table, $name, $newName);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для переименования столбца.
renameTable() метод
public void renameTable(string $table, string $newName) | ||
| $table | строка | таблица, которую нужно переименовать. Имя будет корректно обрамлено кавычками методом. |
| $newName | строка | новое имя таблицы. Имя будет корректно обрамлено кавычками методом. |
public function renameTable($table, $newName)
{
echo " > rename table $table to $newName ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->renameTable($table, $newName);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для переименования таблицы БД.
safeDown() метод (доступен с версии v1.1.7)
public boolean safeDown() | ||
| {return} | логический тип | Возвращение false означает, что миграция не будет применена, и транзакция будет отменена. |
Этот метод содержит логику, которая должна быть выполнена при удалении этой миграции. Этот метод отличается от down тем, что логика БД, реализованная здесь, будет заключена в транзакцию БД. Дочерние классы могут реализовать этот метод вместо up, если логика БД должна быть в транзакции.
safeUp() метод (доступен с версии v1.1.7)
public boolean safeUp() | ||
| {return} | логический тип | Возвращение false означает, что миграция не будет применена, и транзакция будет отменена. |
Этот метод содержит логику, которая должна быть выполнена при применении этой миграции. Этот метод отличается от up тем, что логика БД, реализованная здесь, будет заключена в транзакцию БД. Дочерние классы могут реализовать этот метод вместо up, если логика БД должна быть в транзакции.
setDbConnection() метод
public void setDbConnection(CDbConnection $db) | ||
| $db | CDbConnection | компонент подключения к базе данных |
public function setDbConnection($db)
{
$this->_db=$db;
}
Устанавливает текущее активное подключение к базе данных. Подключение к базе данных будет использоваться методами, такими как insert, createTable.
truncateTable() метод
public void truncateTable(string $table) | ||
| $table | строка | таблица, которая должна быть обнулена. Имя будет должным образом обрамлено кавычками методом. |
public function truncateTable($table)
{
echo " > truncate table $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->truncateTable($table);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос для обнуления таблицы БД.
up() метод
public boolean up() | ||
| {return} | булево | Возвращение false означает, что миграция не будет применена. |
public function up()
{
$transaction=$this->getDbConnection()->beginTransaction();
try
{
if($this->safeUp()===false)
{
$transaction->rollback();
return false;
}
$transaction->commit();
}
catch(Exception $e)
{
echo "Exception: ".$e->getMessage().' ('.$e->getFile().':'.$e->getLine().")\n";
echo $e->getTraceAsString()."\n";
$transaction->rollback();
return false;
}
}
Этот метод содержит логику, которая должна быть выполнена при применении этой миграции. Подклассы могут реализовать этот метод, чтобы предоставить фактическую логику миграции.
update() метод
public void update(string $table, array $columns, mixed $conditions='', array $params=array ( )) | ||
| $table | строка | таблица, которая должна быть обновлена. |
| $columns | массив | данные столбцов (имя=>значение) для обновления. |
| $conditions | смешанный тип | условия, которые будут помещены в часть WHERE. Обратитесь к CDbCommand::where для уточнения условий. |
| $params | массив | параметры, которые будут привязаны к запросу. |
public function update($table, $columns, $conditions='', $params=array())
{
echo " > update $table ...";
$time=microtime(true);
$this->getDbConnection()->createCommand()->update($table, $columns, $conditions, $params);
echo " done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}
Создаёт и выполняет SQL-запрос UPDATE. Метод корректно экранирует имена столбцов и привязывает значения для обновления.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbMigration