Hai Christian,
kurze Verstaendnisfrage:
Ein ROLLBACK direkt nach einem COMMIT hat keinerlei Effekt.
Wie habe ich das zu verstehen? Nur bei erfolgreichem Commit?
Folgendes Beispiel anhand PDO:
<?
public function Insert($bo)
{
try {
$this->GetPDO()->beginTransaction();
// [....]
if( !$this->GetPDO()->commit() )
throw new PDOException("Failed to insert Contact: ".$this->GetLastError());
$bo->SetId( $this->GetPDO()->lastInsertId() );
// [....]
return $bo;
}
catch(PDOException $e)
{
Logger::Error('ContactHandler->Insert(): '.$e->getMessage()).' Starting Rollback!';
if( !$this->GetPDO()->rollback() )
Logger::Error('Rollback Failed!' );
Logger::Info('Rollback Successfully!' );
return false;
}
}
?>
Wenn mit dem Statement (commit) etwas nicht stimmt, dann wird das Rollback erfolgreich aufgerufen.
MfG,
Sympatisant
--
"If the future isn't bright, at least it is colorful"
"If the future isn't bright, at least it is colorful"