php - 在 MySQL 中,最好的做法是将 LOCK TABLES 调用包装在 try catch 中吗?

标签 php mysql try-catch

当执行“LOCK TABLES”时,将调用包装在 try/catch 中以确保在出现异常时解锁表是否明智?

最佳答案

一般来说,对于需要撤消先前操作以防出现任何错误的操作,使用 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;
}

冲突解决的确切行为由事务隔离级别定义,可以根据您的需要进行更改。

关于php - 在 MySQL 中,最好的做法是将 LOCK TABLES 调用包装在 try catch 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514713/

相关文章:

php - 转换为 mp4 时出现 ffmpeg 错误 打开输出流 #0.0 的编码器时出错

php - preg_match,是什么导致了错误?

java - 如何使用 mysql 优化 solr 索引

mysql - 找不到“./mysql/user.MYD”(错误代码 : 13 - Permission denied)

MySQL 触发器 - 获取对象的 DDL 时出错

c# - try/catch + using,正确的语法

c++ - 无法通过 C++ 中的引用捕获引发的异常

javascript - 使用 Javascript 和 Node.js 处理错误 (then/catch)

php - php中未定义索引逻辑错误

mysql - SQL如何使用减号或!=