如何检测交易已启动?
我正在使用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 语句,该语句生成异常,指出交易已启动。