2012-02-29 48 views
2

我有交易的问题Zend Framework的交易(Zend_Db_Adapter会)

$backendB = new BackendBanner();//BackendBanner and ImageBanner extends Zend_Db_Table_Abstract 
$backendB->getAdapter()->beginTransaction(); // starting transaction 

try { 
     $backendB->getAdapter()->insert('module_adv_banner',$data); 
     $lastID = $backendB->getAdapter()->lastInsertId(); 
     $imageBanner = new ImageBanner(); 
     $imageBanner->getAdapter()->insert('module_adv_filebanner',$imgdata); 
     $imageBanner->getAdapter()->commit(); 
} catch (Exception $e) { 
     $backendB->getAdapter()->rollBack(); 
     echo $e->getMessage(); 
} 

当该控制器操作执行,我在第二个插入运算符的SQL错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id_banner1' in 'field list' 

但回退不工作,首先插入查询成功执行并将行插入到表中。

我该怎么做?

+1

您使用什么数据库?如果它是mysql--表中使用了什么存储引擎? – zerkms 2012-02-29 09:05:15

+0

表引擎是MyISAM,它不适用于事务。更改为InnoDB,一切正常。 – Ahmed 2012-02-29 09:08:50

+0

您是否在进入时检查id_banner1是否真的存在或在模型中定义? – Starx 2012-02-29 09:29:00

回答

6

问题是您使用MyISAM不支持交易