Mam prosty test catch, który nie działa tak, jak bym się spodziewał. Jest to moja pierwsza próba przy użyciu transakcji z PDO:Problemy z transakcjami PHP PDO
try
{
$dbo = Db::init();
$dbo->beginTransaction();
$dbo->exec("TRUNCATE TABLE {$this->table}");
$dbo->exec($insert);
$dbo->commit();
}
catch(Exception $e)
{
$dbo->rollBack();
echo 'Failed to sync ' . $this->table;
}
Problem jest, jeśli $dbo->exec($insert);
zawiedzie, $dbo->exec("TRUNCATE TABLE {$this->table}");
nie zostanie wycofana. Jakieś pomysły?
Co to jest '$ insert'? – tplaner
Ciąg (który działa). Ale jeśli celowo umieszczę w nim błąd składni, aby rzucił wyjątek, po wycofaniu nie wycofa się przed przetarciem tabeli. – grep