Версія: 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;