【发布时间】:2010-09-24 02:28:47
【问题描述】:
我正在使用 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 语句,该语句会产生表示事务已经开始的异常。
【问题讨论】:
标签: php mysql zend-framework transactions pdo