繁體中文
版本: 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;