我有一個簡單的嘗試捕獲,這是不是我所期望的操作。這是我第一次嘗試使用事務與PDO: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;
}
的問題是,如果$dbo->exec($insert);
失敗,則$dbo->exec("TRUNCATE TABLE {$this->table}");
不會被回滾。有任何想法嗎?
什麼是'$ insert'? – tplaner
一個字符串(正在工作)。但是,如果我故意在其中引入語法錯誤以使其引發異常,那麼它在回滾時不會回滾到表的擦除發生之前 – grep