Как определить, что транзакция уже началась?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как определить, что транзакция уже началась?

Сообщение Anonymous »

Я использую Zend_Db для вставки некоторых данных в транзакцию. Моя функция запускает транзакцию, а затем вызывает другой метод, который также пытается запустить транзакцию и, конечно же, терпит неудачу (я использую MySQL5). Итак, вопрос: как определить, что транзакция уже началась?
Вот пример кода:

Код: Выделить всё

       try {
Zend_Registry::get('database')->beginTransaction();

$totals = self::calculateTotals($Cart);
$PaymentInstrument = new PaymentInstrument;
$PaymentInstrument->create();
$PaymentInstrument->validate();
$PaymentInstrument->save();

Zend_Registry::get('database')->commit();
return true;

} catch(Zend_Exception $e) {
Bootstrap::$Log->err($e->getMessage());
Zend_Registry::get('database')->rollBack();
return false;
}
Внутри PaymentInstrument::create есть еще один оператор BeginTransaction, который создает исключение, сообщающее, что транзакция уже запущена.

Подробнее здесь: https://stackoverflow.com/questions/319 ... en-started
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»