PT Português
Versão: v2.3.0

action

Executar consultas dentro de uma transação.

action($callback)
Valor de retorno
void
O suporte a transações depende do mecanismo de banco de dados. Se a função callback retornar false, a transação será revertida; caso contrário, será confirmada automaticamente.
$database->action(function($database) {

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

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

	// Se qualquer condição falhar, retorne false para desfazer a transação.
	if ($database->has("post", ["user_id" => 2312])) {
		return false;
	}
});

Acessando dados externos action()

Para usar dados fora do retorno de chamada action(), declare a variável primeiro e importe-a para o fechamento com use. Qualquer valor atribuído dentro do retorno de chamada estará disponível após o término da transação.
$result = "";

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

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

    $newId = $database->id();

    $result = "A conta foi criada com o ID {$newId}.";
});

echo $result;