IT Italiano
Versione: v2.3.0

action

Eseguire query all’interno di una transazione.

action($callback)
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;