JA 日本語
バージョン: v2.3.0

action

トランザクション内でクエリを実行します。

action($callback)
戻り値
void
トランザクション対応の有無は使用するデータベースエンジンに依存します。コールバックが 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;