Phiên bản: v2.3.0
action
Thực thi nhiều truy vấn bên trong một giao dịch.
action($callback)
callback [callable]
Hàm chứa các thao tác sẽ được thực thi trong giao dịch.
Giá trị trả về
void
Khả năng hỗ trợ giao dịch phụ thuộc vào engine cơ sở dữ liệu. Nếu hàm này trả về
false, giao dịch sẽ được hoàn tác; ngược lại, nó sẽ được xác nhận tự động.$database->action(function($database) {
$database->insert("account", [
"name" => "foo",
"email" => "bar@abc.com"
]);
$database->delete("account", [
"user_id" => 2312
]);
// Nếu có điều kiện nào không đạt, hãy trả về false để hoàn tác giao dịch.
if ($database->has("post", ["user_id" => 2312])) {
return false;
}
});
Sử dụng dữ liệu bên ngoài action()
Để dùng dữ liệu bên ngoài hàm được truyền vào
action(), hãy khai báo biến trước rồi đưa biến đó vào hàm ẩn danh bằng use. Mọi giá trị được gán trong hàm này đều vẫn có thể dùng sau khi giao dịch kết thúc.$result = "";
$database->action(function($database) use (&$result) {
$database->insert("account", [
"user_name" => "foo"
]);
$newId = $database->id();
$result = "Đã tạo tài khoản với ID {$newId}.";
});
echo $result;