Versione: v2.3.0
action
Eseguire query all’interno di una transazione.
action($callback)
callback [callable]
La funzione di callback che contiene le query da eseguire all’interno della transazione.
Valore restituito
void
Il supporto alle transazioni dipende dal motore del database. Se il callback restituisce
false, la transazione viene annullata; altrimenti viene confermata automaticamente.$database->action(function($database) {
$database->insert("account", [
"name" => "foo",
"email" => "bar@abc.com"
]);
$database->delete("account", [
"user_id" => 2312
]);
// Se una qualunque condizione fallisce, restituisci false per eseguire il rollback della transazione.
if ($database->has("post", ["user_id" => 2312])) {
return false;
}
});
Accesso ai dati all'esterno dell'azione()
Per utilizzare i dati al di fuori del callback
action(), dichiarare prima la variabile e importarla nella chiusura con use. Qualsiasi valore assegnato all'interno della richiamata sarà quindi disponibile al termine della transazione.$result = "";
$database->action(function($database) use (&$result) {
$database->insert("account", [
"user_name" => "foo"
]);
$newId = $database->id();
$result = "L'account è stato creato con ID {$newId}.";
});
echo $result;