在执行“LOCK TABLES”时,将调用包装在 try/catch 中以确保表在发生异常时解锁是否明智?
问问题
653 次
1 回答
2
通常,最好将其try { } catch
用于需要撤消先前操作以防出现任何错误的操作;它不仅限于数据库语句。
也就是说,在使用数据库时,建议使用更细粒度的锁定机制,例如 InnoDB 等事务数据库附带的锁定机制。您仍将使用try { } catch
,但以这种方式:
// start a new transaction
$db->beginTransaction();
try {
// do stuff
// make the changes permament
$db->commit();
} catch (Exception $e) {
// roll back any changes you've made
$db->rollback();
throw $e;
}
冲突解决的确切行为由事务隔离级别定义,可以根据您的需要进行更改。
于 2013-01-25T03:41:14.477 回答