2012-02-29 46 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不支持交易