私は奇妙な問題に直面しています
Zend_DB_Adapter の beginTrasaction() メソッドと commit() メソッドが期待どおりに動作していないようです。beginTrasaction() および commit() メソッドで囲まれた (FOR LOOP 内の) INSERT ステートメントがあります。しかし、以下のようにエラーが発生した場合でも、エラーが発生したためコミットが行われないことを期待していましたが、すでにいくつかの行が挿入されていることがわかります。なぜなのか理解できません。誰か助けてくれませんか。ありがとう。
SQLSTATE [23000]: 整合性制約違反: 1062 キー 'PRIMARY' のエントリ '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();
}