Laravel は、その洗練された構文、便利な開発、効率的なパフォーマンスにより開発者に好まれている人気のある PHP Web フレームワークです。 Laravel開発ではデータベース操作が特に重要です。 Laravelにはデータベースを操作するためのDBクラスが用意されており、この記事ではLaravel DBクラスの使い方を詳しく紹介します。
Laravel 開発では、DB クラスを通じて簡単にデータベース操作を行うことができます。 DB クラスを使用する前に、コントローラーに名前空間を導入する必要があります。
use IlluminateSupportFacadesDB;
DB クラスを通じて、クエリ、挿入、更新、削除などの操作を実行できます。以下はデータベース クエリの例です。
$users = DB::table('users')->get();
上記の例は、users テーブルからすべてのユーザーのレコードを取得することです。単一のレコードを取得したい場合は、次のコードを使用できます。
$user = DB::table('users')->where('name', 'John')->first();
上記のコードは、users テーブルから John という名前の最初のレコードを取得します。
DB クラスのキーはクエリ コンストラクターです。クエリ ビルダーはチェーン メソッドを通じてクエリを構築でき、非常に柔軟で便利です。以下に例を示します:
a. where 条件クエリ
$users = DB::table('users')->where('name', '=', 'John')->get();
上の例は、users テーブルから名前が「John」に等しいレコードをクエリします。条件タイプは、「>」、「<」、「>=」、「<=」などの 2 番目のパラメータを通じて指定できます。
b. orWhere 条件クエリ
$users = DB::table('users')->where('name', '=', 'John')->orWhere('name', '=', 'Mary')->get();
上の例は、名前が「John」と等しいか、「name」が「Mary」と等しいレコードを users テーブルからクエリします。
c. 複数の Where 条件クエリ
$users = DB::table('users')->where([ ['status', '=', '1'], ['name', '<>', 'John'] ])->get();
上の例は、ステータスが 1 で名前が John に等しくないレコードを users テーブルからクエリします。
d. whereBetween 条件クエリ
$users = DB::table('users')->whereBetween('votes', [1, 100])->get();
上の例は、users テーブルから 1 ~ 100 の投票を持つレコードをクエリします。
e. whereIn 条件付きクエリ
$users = DB::table('users')->whereIn('id', [1, 2, 3])->get();
上の例は、users テーブルから ID 1、2、および 3 のレコードをクエリすることです。
f. orderBysortQuery
$users = DB::table('users')->orderBy('name', 'desc')->get();
上の例は、users テーブル内のレコードを名前の逆順にクエリすることです。
Laravel DB クラスは、クエリ操作だけでなく、挿入、更新、削除操作もサポートします。以下に例を示します:
a. データ挿入
DB::table('users')->insert([ 'email' => 'john@example.com', 'name' => 'John Doe' ]);
上の例では、電子メール アドレス john@example.com と名前 John Doe のレコードを users テーブルに挿入します。
b. データ更新
DB::table('users')->where('id', 1)->update(['votes' => 1]);
上の例では、ID 1 のユーザーの投票数を 1 に更新します。
c. データの削除
DB::table('users')->where('votes', '<', 100)->delete();
上の例では、投票数が 100 未満のすべてのユーザーを削除します。
データ操作では、データ挿入時のエラーなどの事故が発生しやすいです。現時点では、データの整合性を確保するためにトランザクションをロールバックする必要があります。 Laravel DB クラスはトランザクション操作をサポートします。以下に例を示します。
DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); });
上記の例は、users テーブル内のすべてのユーザーの投票数を 1 に更新し、posts テーブル内のすべてのレコードを削除する単純なトランザクションです。トランザクション中にエラーが発生した場合、エラーは自動的にロールバックされ、データの整合性が維持されます。
ほとんどの場合、Laravel DB クラスはデフォルトのデータベースとテーブルに自動的に接続しますが、場合によっては、接続とテーブル名を手動で指定します。以下に例を示します。
$users = DB::connection('connection-1')->table('users')->get();
上の例では、最初の接続で users テーブル内のすべてのデータが表示されます。 config/database.php ファイルで複数の接続情報を構成できます。
Laravel DB クラスを通じて、データベース操作を簡単に実行できます。単純なデータクエリから複雑なトランザクション操作まで、Laravel DB クラスは対応するメソッドと構文を提供します。実際の開発では、クエリビルダー、トランザクション、接続を必要に応じて組み合わせて使用することで、柔軟かつ効率的なデータ操作を実現できます。
以上がlaravel DBクラスの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。