DE Deutsch
Version: v2.3.0

action

Abfragen innerhalb einer Transaktion ausführen.

action($callback)
Rückgabewert
void
Die Unterstützung für Transaktionen hängt von der Datenbank-Engine ab. Wenn die Callback-Funktion false zurückgibt, wird die Transaktion zurückgerollt; andernfalls wird sie automatisch festgeschrieben.
$database->action(function($database) {

	$database->insert("account", [
		"name" => "foo",
		"email" => "bar@abc.com"
	]);

	$database->delete("account", [
		"user_id" => 2312
	]);

	// Wenn eine Bedingung fehlschlägt, geben Sie false zurück, um die Transaktion zurückzurollen.
	if ($database->has("post", ["user_id" => 2312])) {
		return false;
	}
});

Zugriff auf Daten außerhalb von action()

Wenn Sie Daten außerhalb des action()-Callbacks verwenden möchten, deklarieren Sie die Variable zunächst und übernehmen Sie sie mit use in die Closure. Jeder innerhalb des Callbacks gesetzte Wert steht nach Abschluss der Transaktion weiterhin zur Verfügung.
$result = "";

$database->action(function($database) use (&$result) {

    $database->insert("account", [
        "user_name" => "foo"
    ]);

    $newId = $database->id();

    $result = "Das Konto wurde mit der ID {$newId} erstellt.";
});

echo $result;