Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔:如果你不';是否不提交或回滚手动启动的事务?_Php_Laravel_Transactions - Fatal编程技术网

Php 拉威尔:如果你不';是否不提交或回滚手动启动的事务?

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()之前调用数据库时出现异常时会发生什么?我假设由于您没有提交

我最近开始使用PHP/Laravel(我已经使用Java超过15年了)。我在代码库中注意到以下代码:

public function doSomeStuffInDb() {
  DB::beginTransaction();
  // Some db calls here
  DB::commit();
}
我在文档中已经发现,正确的方法是使用
DB::transaction
和包含DB调用的闭包


但是我想知道在调用
DB::commit()
之前调用数据库时出现异常时会发生什么?我假设由于您没有提交,所以数据库中不会存储任何内容,但是它会产生进一步的后果(数据库行锁?)?离开函数时是否会中止事务?

任何尚未提交或回滚的事务都可能存在脏读、不可重复读、幻象读以及所有其他在java中实现的注意事项


这意味着,即使锁定是在行级别完成的,查询以非锁定一致性读取的方式运行,最终也会产生很多进一步的后果。锁的处理取决于您的数据库设置,有些是超时的,有些是保留的。

我们正在使用MySQL,如果这很重要的话。您找到答案了吗?