版本: v2.3.0
action
在事务中执行一组查询。
action($callback)
callback [callable]
包含事务内查询逻辑的回调函数。
返回值
void
是否支持事务取决于底层数据库引擎。回调返回
false 时会回滚,否则会自动提交。$database->action(function($database) {
$database->insert("account", [
"name" => "foo",
"email" => "bar@abc.com"
]);
$database->delete("account", [
"user_id" => 2312
]);
// 如果任一条件失败,则返回 false 以回滚事务。
if ($database->has("post", ["user_id" => 2312])) {
return false;
}
});
在 action() 外部访问数据
如果要在
action() 回调之外使用数据,请先声明变量,再通过 use 将其导入闭包。事务完成后,就可以在外部继续使用回调里赋给这些变量的值。$result = "";
$database->action(function($database) use (&$result) {
$database->insert("account", [
"user_name" => "foo"
]);
$newId = $database->id();
$result = "账户已创建,ID 为 {$newId}。";
});
echo $result;