【Larabel入門】DB::transactionとは?

hosts

kamiです。
TwitterYoutubeもやってます。

transaction(トランザクション)とは?

トランザクションを利用することで、複数のデータベース操作をまとめて行い、その一連の操作が全て成功した場合にのみ変更を確定させることができます。
一つでも操作が失敗した場合、トランザクションは自動的にロールバックされ、全ての変更が元に戻されます。

DB::transactionの使い方

try、catchでDB::transaction(function () {}内にDB処理を記述していきます。
DB::transaction内に複数のDB処理を記述することができます。

use Illuminate\Support\Facades\DB;

try {
    DB::transaction(function () {
    // トランザクション内のデータベース操作を記述
        DB::table('テーブル名')->処理1
        DB::table('テーブル名')->処理2
        DB::table('テーブル名')->処理3
 

    // 以下複数のDB処理の記述も可能
} catch (\Exception $e) {
    // エラー処理を記述
    $e->getMessage();
}

スポンサードサーチ

DB::beginTransactionとの違い

DB::transactionとは基本的に概念は変わりませんが、「commit」「rollback」の記述が省略できると思ってもらって構いません。
より短いコードで記述することが好ましいので、「DB::transaction」の使うことがおすすめです。

DB::transactionを使ったコード

use Illuminate\Support\Facades\DB;

try {
    DB::transaction(function () {
      // トランザクション内のデータベース操作を記述
      DB::table('users')->insert(['name' => 'kami', 'hp' => 'https://god48.com/']);

    // 以下複数のDB処理の記述も可能
} catch (\Exception $e) {
    // エラー処理を記述
    $e->getMessage();
}

スポンサードサーチ

実装やエラーが解決できない場合

プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。

考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。

そういう時は聞ける先輩や、メンターに相談することが大事です。

僕にも相談可能なので気軽に相談してください。

Twitterからの連絡だと確実ですよ。

オンラインスクールやプログラミングスクールといったプログラミングを学べる方法もあるので、そちらもぜひ活用してもいいと思います。

Web開発で分からない時

オンライン完結型スクール DMM WEBCAMP PRO

アプリ開発で分からない時

プログラミング×稼げる副業スキルはテックキャンプ

プログラミングについて分からない時

【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。
ミニマリスト_カミ

僕への個人でもメンターでも、スクールでもお好きな方を活用ください。

hosts

Posted by kami