カテゴリ: CodeIgniter 更新日: 2026/07/04

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

まとめ

まとめ
まとめ

今回の記事では、PHPの人気フレームワークであるCodeIgniter(コードイグナイター)を使用した、データベース操作の基本について詳しく解説してきました。Webアプリケーション開発において、データの登録、更新、削除という一連の流れ、いわゆるCRUD操作を理解することは、エンジニアとしての第一歩と言っても過言ではありません。

特に、CodeIgniterの強力な機能である「モデル(Model)」を活用することで、複雑なSQL文を意識することなく、直感的なメソッド呼び出しだけでデータベースとのやり取りが可能になります。初心者の方でも、この記事で紹介した手順を一つずつなぞっていけば、自分だけのデータ管理システムを作り上げることができるはずです。

データベース操作の重要ポイントをおさらい

まず、モデルの作成時には、セキュリティ対策として$allowedFieldsの設定が不可欠であることを学びました。これは、意図しない項目が外部から書き換えられるのを防ぐ「防波堤」のような役割を果たします。プログラミング未経験の方は、まずこの設定を忘れないように習慣づけることが大切です。

次に、データの追加にはinsert()、既存データの書き換えにはupdate()、そして不要なデータの破棄にはdelete()というメソッドを使用しました。それぞれのメソッドが、どの引数(IDやデータ配列)を必要としているのかを整理しておきましょう。

実践的なサンプルコードの振り返り

ここまでの内容を統合した、実戦で使えるコントローラー側の記述例をもう一度確認してみましょう。例えば、商品の情報を一括で管理するような処理は以下のようになります。


// モデルをインスタンス化して準備します
$itemModel = new \App\Models\ItemModel();

// 1. 新しい商品を登録する処理
$newItem = [
    'name'     => 'オレンジジュース',
    'price'    => 120,
    'quantity' => 10
];
$itemModel->insert($newItem);

// 2. 登録した商品の在庫数を更新する処理(例:IDが5番の商品)
$updateStock = [
    'quantity' => 20
];
$itemModel->update(5, $updateStock);

// 3. 販売終了した商品を削除する処理(例:IDが10番の商品)
$itemModel->delete(10);

このように、短いコードでデータベースの状態を自由自在に操れるのがCodeIgniterの素晴らしい点です。実行結果として、正しく処理が行われるとデータベースのテーブル内は以下のように変化します。


(新しい行が追加され、指定したIDの数値が書き換わり、不要なデータ行が消去されました)

安全なシステム運用のために

記事の後半で触れた「バリデーション」についても、まとめとして強調しておきます。ユーザーが入力するデータは、必ずしも開発者が意図した通りのものとは限りません。空文字の送信や、数字を入れるべき場所に文字が入るなど、予期せぬ入力はシステムの不具合やエラーの原因となります。

CodeIgniterのモデルにバリデーションルールを記述しておくことで、こうしたミスを未然に防ぎ、常に「綺麗なデータ」だけをデータベースに保存できるようになります。これは、単に動くものを作るだけでなく、「壊れにくい、プロフェッショナルなもの」を作るための必須技術です。

最初は覚えることが多く感じるかもしれませんが、プログラミングは習うより慣れろです。まずはパソコンを触って、自分の手でコードを打ち込み、エラーが出たら一つずつ解決していく。その繰り返しの先に、自由自在にWebサイトを動かせるスキルが身についていきます。この記事が、あなたの開発ライフの助けになれば幸いです。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!データの登録から削除まで、意外と短いコードで書けるんですね。もっと難しいコマンドをたくさん覚えないといけないと思っていました。」

先生

「そうですね。CodeIgniterが裏側で複雑な処理を引き受けてくれているおかげで、私たちはやりたいこと、つまり『何を登録したいか』『何を消したいか』を伝えるだけで済むんですよ。」

生徒

「特にIDを指定して更新したり削除したりするのが、出席番号で人を指名するみたいで分かりやすかったです。でも、もしIDを間違えて指定しちゃったらどうなりますか?」

先生

「鋭いですね!もし存在しないIDを指定してもエラーにはなりませんが、何も削除されません。逆に、間違ったIDを指定して大切なデータを消してしまうと取り返しがつかないので、操作する前には必ず『どのデータを対象にするか』を確認する癖をつけましょう。」

生徒

「なるほど…。慎重に操作しないといけないですね。バリデーションについても、しっかりルールを決めておけば安心できそうです。」

先生

「その通りです。安全第一ですね。次はこの技術を使って、実際に画面からデータを入力して保存する『フォーム機能』を作ってみましょうか!」

生徒

「はい!自分で入力したものが保存されるのが楽しみです。頑張ります!」

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelでリダイレクトやフラッシュメッセージをテストする方法を完全解説!初心者向けLaravelテスト入門
New3
CodeIgniter
CodeIgniterのセキュリティ対策を完全ガイド!初心者が守るべき基本設定
New4
Symfony
SymfonyのEventSubscriberとEventListenerの違いを初心者向けにやさしく解説
人気記事
No.2
Java&Spring記事人気No2
Laravel
LaravelでReactコンポーネントを組み込む方法完全ガイド!JSX対応でフロントエンド連携を学ぼう
No.3
Java&Spring記事人気No3
Laravel
LaravelのRESTfulコントローラ設計のベストプラクティスを初心者向けにわかりやすく解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのold()関数でフォーム再表示時に値を保持する方法
No.5
Java&Spring記事人気No5
Laravel
LaravelをDockerで動かすメリットと導入の全体像を徹底解説!初心者向け入門ガイド
No.6
Java&Spring記事人気No6
Symfony
Symfonyでバリデーションをコントローラに組み込む方法を徹底解説!初心者にもやさしい入力チェックの基本
No.7
Java&Spring記事人気No7
Symfony
Symfonyのインストール方法!CLIとComposerの導入手順まとめ
No.8
Java&Spring記事人気No8
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方