カテゴリ: CodeIgniter 更新日: 2026/02/19

CodeIgniterでデータベース操作をマスター!初心者向け登録・更新・削除ガイド

CodeIgniterでデータを新規登録・更新・削除する方法
CodeIgniterでデータを新規登録・更新・削除する方法

先生と生徒の会話形式で理解しよう

生徒

「CodeIgniterを使って、Webサイトのデータを保存したり書き換えたりしたいです!どうすればいいですか?」

先生

「データベース(情報を貯めておく倉庫)を操作する必要がありますね。CodeIgniterには、初心者でも簡単にデータを扱える便利な仕組みが備わっていますよ。」

生徒

「データベースとか難しそう…。パソコン初心者でも、データの追加や削除ができるようになりますか?」

先生

「もちろんです!まずはデータの扱い方の基本となる、追加・更新・削除のやり方を一つずつ見ていきましょう!」

1. データベース操作の基本「CRUD」とは?

1. データベース操作の基本「CRUD」とは?
1. データベース操作の基本「CRUD」とは?

プログラミングの世界には、CRUD(クラッド)という言葉があります。これは、データの操作で最も重要な4つの動きの頭文字を取ったものです。

  • Create(作成):新しいデータを登録すること
  • Read(読み取り):保存されているデータを表示すること
  • Update(更新):すでにあるデータを書き換えること
  • Delete(削除):不要になったデータを消すこと

今回は、この中から「作成(登録)」「更新」「削除」に注目して解説します。例えば、あなたがブログを書くとき、記事を「新しく投稿」し、内容を「修正」し、気に入らなければ「消す」という動作をしますよね。これこそがデータベース操作の基本です。PHPフレームワークであるCodeIgniterを使えば、難しい命令文を書かなくても、これらが魔法のように簡単に実現できます。

2. データの入り口「モデル」を作ろう

2. データの入り口「モデル」を作ろう
2. データの入り口「モデル」を作ろう

CodeIgniterでは、データベースとやり取りをする専用のファイルをモデル(Model)と呼びます。例えるなら、モデルは「倉庫番」のような存在です。あなたが「このデータを倉庫に入れておいて!」と頼むと、モデルが代わりに倉庫(データベース)へ行って作業をしてくれます。パソコン初心者の方は、まず「データベースに触るときは、このモデルというファイルを使うんだな」と覚えておけば大丈夫です。

モデルを作るには、app/Modelsというフォルダに新しいファイルを作成します。今回は「お買い物リスト」を管理するシステムを想定して、ItemModel.phpという名前で作成してみましょう。ここで大切なのは、扱うテーブル(データの表)の名前を教えてあげることです。


namespace App\Models;
use CodeIgniter\Model;

class ItemModel extends Model
{
    // 操作するテーブルの名前を指定します
    protected $table = 'items';
    // 外部から書き込みを許可する項目の名前を指定します(セキュリティのため)
    protected $allowedFields = ['name', 'price', 'quantity'];
}

上記のコードで、$allowedFields(アラウド・フィールズ)という設定があります。これは「この項目だけは書き換えてもいいよ」と許可を出すためのものです。これがないと、勝手にデータを書き換えられる危険があるため、とても重要な設定です。

3. データを新しく登録する(インサート)

3. データを新しく登録する(インサート)
3. データを新しく登録する(インサート)

それでは、実際にデータをデータベースに登録してみましょう。これをプログラミング用語ではインサート(Insert)と呼びます。お買い物リストに「りんご」という商品を追加するイメージです。コントローラーという、プログラムの司令塔の役割をするファイルに以下のように書きます。


$model = new \App\Models\ItemModel();

// 登録したいデータを準備します(連想配列といいます)
$data = [
    'name'     => 'りんご',
    'price'    => 150,
    'quantity' => 3
];

// insertメソッドでデータベースに保存!
$model->insert($data);

ここで出てくる$dataは、情報のセットです。「名前はりんご」「価格は150円」といった情報を一つにまとめています。最後にinsert($data)と書くだけで、CodeIgniterが自動的にデータベースの倉庫に新しい行を追加してくれます。非常にシンプルで分かりやすいですね。

4. すでにあるデータを更新する(アップデート)

4. すでにあるデータを更新する(アップデート)
4. すでにあるデータを更新する(アップデート)

次に、登録したデータを書き換えるアップデート(Update)の方法を学びましょう。例えば、「りんごの値段が150円から200円に値上がりした」という場合です。このとき、どのデータを書き換えるかを指定するために「ID(アイディー)」という番号を使います。IDは、データ一人ひとりに割り振られた出席番号のようなものです。


$model = new \App\Models\ItemModel();

// IDが1番のデータの価格を200円に変更します
$updateData = [
    'price' => 200
];

$model->update(1, $updateData);

update(1, $updateData)の「1」が、書き換えたいデータの番号です。これで、1番のデータの価格だけが200円に更新されます。間違えて全てのデータの価格を変えてしまわないように、どの番号のデータを変えるのかをハッキリ伝えるのがコツです。

5. 不要なデータを削除する(デリート)

5. 不要なデータを削除する(デリート)
5. 不要なデータを削除する(デリート)

お買い物が終わって、リストから項目を消したいときはデリート(Delete)を使います。削除は非常に強力な操作なので、慎重に行う必要があります。やり方は更新のときと似ていて、消したいデータの番号(ID)を指定するだけです。


$model = new \App\Models\ItemModel();

// IDが1番のデータを削除します
$model->delete(1);

実行結果は以下のようになります(画面には何も出ませんが、データベースの中身は変化します)。


(ID 1番の「りんご」のデータがデータベースから消去されました)

これで、データの追加・更新・削除のすべてができるようになりました!これらを組み合わせるだけで、日記アプリやメモ帳、掲示板など、いろいろなWebアプリが作れるようになります。

6. 保存に失敗しないための「バリデーション」

6. 保存に失敗しないための「バリデーション」
6. 保存に失敗しないための「バリデーション」

初心者がよく陥るミスとして、空っぽのデータや間違った形式のデータを登録してしまうことがあります。例えば、価格を入れる場所に「無料」という文字を入れてしまうと、計算ができなくてエラーになってしまいます。それを防ぐのがバリデーション(検証)という仕組みです。モデルにルールを書いておくと、CodeIgniterが自動でチェックしてくれます。


// モデルの中にルールを追加する例
protected $validationRules = [
    'name'  => 'required|min_length[3]',
    'price' => 'required|numeric'
];

required(リクワイアド)は「必須(空っぽはダメ)」、numeric(ニューメリック)は「数字だけ」という意味です。このようにルールを決めておけば、変なデータが紛れ込むのを未然に防ぐことができます。安全なシステムを作るためには欠かせない知識です。

7. パソコン操作に慣れていない方へのアドバイス

7. パソコン操作に慣れていない方へのアドバイス
7. パソコン操作に慣れていない方へのアドバイス

プログラミングを始めたばかりのときは、コードのたった一文字を打ち間違えただけで動かなくなることがあります。「カッコを閉じるのを忘れた」「セミコロン(;)が抜けていた」など、最初は誰でも経験することです。もしエラー画面が出ても、それは「ここが間違っているよ」というコンピュータからの親切な教えてだと捉えましょう。

CodeIgniterは、そうした初心者のミスを見つけやすく、修正しやすいように工夫されています。まずは、今回紹介したコードをそのままコピーして、自分の環境で動かしてみることから始めてください。自分の書いた命令でデータベースの中身が変わる瞬間は、とても感動するものですよ。ゆっくり一歩ずつ、プログラミングの世界を楽しんでいきましょう!

カテゴリの一覧へ
新着記事
New1
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New2
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New3
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
New4
Symfony
Symfonyのキャッシュ機構の基本を理解しよう(HTTPとアプリ別)
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.4
Java&Spring記事人気No4
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.5
Java&Spring記事人気No5
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.6
Java&Spring記事人気No6
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.7
Java&Spring記事人気No7
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方