【Larabel入門】DB::transactionとは?
目次
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アプリ開発で分からない時
プログラミング×稼げる副業スキルはテックキャンププログラミングについて分からない時
【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。僕への個人でもメンターでも、スクールでもお好きな方を活用ください。