バージョン: v2.3.0
action
トランザクション内でクエリを実行します。
action($callback)
callback [callable]
トランザクション内で実行する処理を定義するコールバック関数。
戻り値
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;