我面臨的一個奇怪的問題Zend的適配器的BeginTransaction()和commit()失敗
的Zend_Db_Adapter會的beginTrasaction()和commit()方法似乎並沒有被工作正常。我在beginTrasaction()和commit()方法中包含了INSERT語句(在FOR LOOP中)。但即使發生像下面這樣的錯誤,我仍然可以看到已經插入了一些行,但我期望在發生錯誤後不再發生提交。我無法理解爲什麼。有人可以幫忙嗎?謝謝。
SQLSTATE [23000]:完整性約束違規:1062重複條目 '0' 等鍵 '主要'
代碼塊:
**$localDB->beginTransaction();**
try{
echo $localDB->isConnected();
$localDB->query("TRUNCATE TABLE $this->dbTable");
**foreach ($rowSet as $row){**
foreach ($row as $key=>$value){
$localRow[$this->columnMap[$key]] =$value;
}
**$localDB->insert($this->dbTable,$localRow);**
}
$localDB->commit();
}
catch (Exception $e){
$localDB->rollBack();
echo $e->getMessage();
}
我覺得你有正試圖進入相同值的主鍵。在這種情況下,請給出表格詳細信息以及columnMap的來源。它是否包含任何值? – 2011-05-20 06:33:50
我認爲他的主要問題是交易未按預期工作。 – 2011-05-20 06:53:04