zend_db_tableに次のコードを追加することで問題を解決しました:/***サポートトランザクション*/
public function beginTransaction() {
$this->getAdapter()->beginTransaction();
}
public function commit() {
$this->getAdapter()->commit();
}
public function rollback() {
$this->getAdapter()->rollback();
}
次のようにzend_db_tableから拡張するモデルでトランザクションを使用できるようにします。
public function test(){
$this->beginTransaction();
try {
$this->addCourseItem('1', '1', '1', '1', '1');
$this->fetchRow("none-exist-field = 1");
//the following code will not execute
echo "okay";
$this->commit();
} catch (exception $e) {
$this->rollback();
echo "error message:".$e->getMessage();
}
}