CDbTransaction
| Пакет | system.db |
|---|---|
| Наследование | класс CDbTransaction » CComponent |
| С момента | 1.0 |
| Исходный код | framework/db/CDbTransaction.php |
CDbTransaction представляет транзакцию БД.
Обычно создаётся вызовом CDbConnection::beginTransaction.
Следующий код — типичный пример использования транзакций:
Обычно создаётся вызовом CDbConnection::beginTransaction.
Следующий код — типичный пример использования транзакций:
$transaction=$connection->beginTransaction();
try
{
$connection->createCommand($sql1)->execute();
$connection->createCommand($sql2)->execute();
//.... other SQL executions
$transaction->commit();
}
catch(Exception $e)
{
$transaction->rollback();
}
Общественные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| active | boolean | активна ли эта транзакция | CDbTransaction |
| connection | CDbConnection | соединение с БД для этой транзакции | CDbTransaction |
Общественные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CDbTransaction |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| commit() | Подтверждает транзакцию. | CDbTransaction |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает прикреплённое поведение. | CComponent |
| disableBehaviors() | Отключает все прикреплённые к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает прикреплённое поведение. | CComponent |
| enableBehaviors() | Включает все прикреплённые к этому компоненту поведения. | CComponent |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. | CComponent |
| getActive() | Возвращает, активна ли эта транзакция | CDbTransaction |
| getConnection() | Возвращает соединение с БД для этой транзакции | CDbTransaction |
| getEventHandlers() | Возвращает список прикрепленных обработчиков событий для события. | CComponent |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикреплённые обработчики для заданного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| raiseEvent() | Вызывает событие. | CComponent |
| rollback() | Отменяет транзакцию. | CDbTransaction |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| setActive() | Устанавливает, активна ли эта транзакция | CDbTransaction |
Подробное описание свойств
active свойство
public boolean getActive()
protected void setActive(boolean $value)
активна ли эта транзакция
connection свойство только для чтения
public CDbConnection getConnection()
соединение с БД для этой транзакции
Подробное описание методов
__construct() метод
public void __construct(CDbConnection $connection) | ||
| $connection | CDbConnection | соединение, связанное с этой транзакцией |
Исходный код: framework/db/CDbTransaction.php#49 (показать)
public function __construct(CDbConnection $connection)
{
$this->_connection=$connection;
$this->_active=true;
}
Конструктор.
См. также
commit() метод
public void commit() |
Исходный код: framework/db/CDbTransaction.php#59 (показать)
public function commit()
{
if($this->_active && $this->_connection->getActive())
{
Yii::trace('Committing transaction','system.db.CDbTransaction');
$this->_connection->getPdoInstance()->commit();
$this->_active=false;
}
else
throw new CDbException(Yii::t('yii','CDbTransaction is inactive and cannot perform commit or roll back operations.'));
}
Подтверждает транзакцию.
getActive() метод
public boolean getActive() | ||
| {возвращает} | boolean | активна ли эта транзакция |
Исходный код: framework/db/CDbTransaction.php#98 (показать)
public function getActive()
{
return $this->_active;
}
getConnection() метод
public CDbConnection getConnection() | ||
| {возвращает} | CDbConnection | соединение с БД для этой транзакции |
Исходный код: framework/db/CDbTransaction.php#90 (показать)
public function getConnection()
{
return $this->_connection;
}
rollback() метод
public void rollback() |
Исходный код: framework/db/CDbTransaction.php#75 (показать)
public function rollback()
{
if($this->_active && $this->_connection->getActive())
{
Yii::trace('Rolling back transaction','system.db.CDbTransaction');
$this->_connection->getPdoInstance()->rollBack();
$this->_active=false;
}
else
throw new CDbException(Yii::t('yii','CDbTransaction is inactive and cannot perform commit or roll back operations.'));
}
Отменяет транзакцию.
setActive() метод
protected void setActive(boolean $value) | ||
| $value | boolean | является ли эта транзакция активной |
Исходный код: framework/db/CDbTransaction.php#106 (показать)
protected function setActive($value)
{
$this->_active=$value;
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbTransaction