Php 拉威尔:如果你不';是否不提交或回滚手动启动的事务?
我最近开始使用PHP/Laravel(我已经使用Java超过15年了)。我在代码库中注意到以下代码:Php 拉威尔:如果你不';是否不提交或回滚手动启动的事务?,php,laravel,transactions,Php,Laravel,Transactions,我最近开始使用PHP/Laravel(我已经使用Java超过15年了)。我在代码库中注意到以下代码: public function doSomeStuffInDb() { DB::beginTransaction(); // Some db calls here DB::commit(); } 我在文档中已经发现,正确的方法是使用DB::transaction和包含DB调用的闭包 但是我想知道在调用DB::commit()之前调用数据库时出现异常时会发生什么?我假设由于您没有提交
public function doSomeStuffInDb() {
DB::beginTransaction();
// Some db calls here
DB::commit();
}
我在文档中已经发现,正确的方法是使用DB::transaction
和包含DB调用的闭包
但是我想知道在调用
DB::commit()
之前调用数据库时出现异常时会发生什么?我假设由于您没有提交,所以数据库中不会存储任何内容,但是它会产生进一步的后果(数据库行锁?)?离开函数时是否会中止事务?任何尚未提交或回滚的事务都可能存在脏读、不可重复读、幻象读以及所有其他在java中实现的注意事项
这意味着,即使锁定是在行级别完成的,查询以非锁定一致性读取的方式运行,最终也会产生很多进一步的后果。锁的处理取决于您的数据库设置,有些是超时的,有些是保留的。我们正在使用MySQL,如果这很重要的话。您找到答案了吗?