Версия: v2.3.0
action
Выполняет запросы внутри транзакции.
action($callback)
callback [callable]
Callback-функция, внутри которой выполняются запросы в рамках транзакции.
Возвращаемое значение
void
Поддержка транзакций зависит от движка базы данных. Если callback возвращает
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;