我尝试使用DB :: execute()函数执行一些自定义查询,方法是将查询作为参数传递给此函数 - 在现有表上更新查询。在运行此查询之前,我检查了连接对象,如$ connection = DB :: getConnection();它返回了一个连接标识符。然后在执行查询时,它从执行函数返回bool true,尽管数据库表字段中没有更改。此外,如果我使用错误的语法传递查询,则会出错。
在ActiveCollab中使用更新查询语句在后台进行回滚过程吗?如果是,如何停止此回滚以避免更新查询所做的更改?
有谁能告诉我这里可能出现什么问题?
答案 0 :(得分:1)
所有未提交的事务都会在脚本关闭时自动回滚,因此您需要确保提交已打开的事务:
try {
DB::beginWork();
// Do something
DB::commit();
} catch(Exception $e) {
DB::rollback();
throw $e;
}
或:
DB::transact(function() {
// Do something
});
如果您在嵌套事务中并且外部事务被回滚,那么您的更新也将被回滚。