データベースアクセスの基本は、、これでだいたいわかりました。後は、実際に行う処理のためのメソッドを覚えていくだけです。
データベースの基本操作は、「
CRUD」と呼ばれます。
Create(生成)、
Read(取得)、
Update(更新)、
Delete(削除)の4つの操作のことです。これらの基本的なメソッドを個々でまとめておきましょう。
・レコードの検索DB::select('select * from……);
これは既にやりましたね。
DB::selectは、引数に指定したselect文を実行し、その結果のレコードを入れ越にまとめて返します。
・レコードの追加DB::insert('insert into ……');
レコードの追加は、「
DB:insert」メソッドで行います。これは、引数にinto文によるクエリーを用意します。
・レコードの更新DB::update('update……')
既にあるレコードの更新は「
DB::update」メソッドで行います。返値は更新されたオブジェクトになります。
・レコードの削除DB::delete('delete from……')
レコードの削除は「
DB::delete」です。削除は、正しく行えなかった場合もエラーにはなりません。
――これらのメソッドがわかれば、CRUDの基本処理は作成できるようになります。いろいろとメソッドが分かれていますが、要するにすべては「SQLクエリー文を書いて実行する」というだけのものです。非常にシンプルですね。
■トランザクションについて
これらのうち、データの改変を行うようなもの、あるいは同時に複数の処理を実行するような場合には注意が必要です。アクセスしているクライアント以外の人間がアクセスすると、データの不整合が発生してしまう可能性があるからです。
こういう処理は、「
トランザクション」という機能を使って行うべきです。トランザクションは、ある処理を実行している間、外部からのアクセスされることなく全てを一括して実行するためのものです。これは以下のように使います。
DB::beginTransaction();
……実行する処理……
DB::commit();
最初に
DB::beginTransactionを実行し、それから必要な処理を実行していきます。そして全て終わったら、
DB::commitを実行すると、その間の処理を一括して実行します。これは、特にデータを書き換えるような処理を行う場合には必須のものと考えておきましょう。