KO 한국어
버전: 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;