0

我尝试通过将查询作为参数传递给该函数来使用 DB::execute() 函数执行一些自定义查询 - 更新现有表上的查询。在运行这个查询之前,我检查了这样的连接对象 $connection = DB::getConnection(); 它返回一个连接标识符。然后在执行查询时,它从执行函数返回 bool true,尽管数据库表字段中没有更改。此外,如果我以错误的语法传递查询,则会出错。

ActiveCollab 中的更新查询语句在后台是否有任何回滚过程?如果是,如何停止此回滚以避免我的更新查询所做的更改?

谁能告诉我这里可能是什么问题?

4

1 回答 1

1

所有未提交的事务都会在脚本关闭时自动回滚,因此您需要确保您正在提交您打开的事务:

try {
  DB::beginWork();

  // Do something

  DB::commit();
} catch(Exception $e) {
  DB::rollback();
  throw $e;
}

或者:

DB::transact(function() {
  // Do something
});

如果您在嵌套事务中并且外部事务被回滚,您的更新也将被回滚。

于 2013-10-08T14:36:48.743 回答