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

CodeIgniterのQuery Builder(クエリビルダー)完全攻略!データベース操作を優しく解説

CodeIgniterのQuery Builderとは?基本構文と使い方
CodeIgniterのQuery Builderとは?基本構文と使い方

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

生徒

「CodeIgniterでデータベースのデータを表示したり保存したりしたいんですけど、難しそうで不安です…。」

先生

「大丈夫ですよ。CodeIgniterには『Query Builder(クエリビルダー)』という、初心者でも直感的にデータを扱える便利な仕組みがあるんです。」

生徒

「クエリビルダー?それはどうやって使うんですか?」

先生

「専門的な難しい言葉を使わずに、パズルのように組み立てる方法を一つずつ教えていきますね!」

1. Query Builder(クエリビルダー)とは何のこと?

1. Query Builder(クエリビルダー)とは何のこと?
1. Query Builder(クエリビルダー)とは何のこと?

Webアプリケーションを作るとき、ユーザーの名前やブログの投稿内容などを保存しておく「データベース」という大きな倉庫のようなものを使います。通常、この倉庫からデータを取り出したり、新しく入れたりするには「SQL(エスキューエル)」という特別なコンピュータ言語を書く必要があります。

しかし、プログラミングを始めたばかりの人にとって、SQLを完璧に覚えるのは少し大変です。そこで登場するのがQuery Builder(クエリビルダー)です。これは、複雑なSQLの代わりに、PHPの簡単な命令を組み合わせるだけでデータベースを操作できる「翻訳機」のような役割を果たしてくれます。

例えば、「ユーザーの一覧を持ってきて!」という命令も、クエリビルダーを使えば英語の文章を書くような感覚で記述できます。また、セキュリティ面でも「SQLインジェクション」という悪い攻撃からデータを守ってくれる仕組みが自動で働くため、初心者が安全にプログラムを作るための強力な味方になります。

2. データベース操作の基本「CRUD」を覚えよう

2. データベース操作の基本「CRUD」を覚えよう
2. データベース操作の基本「CRUD」を覚えよう

プログラミングの世界では、データベース操作の基本を「CRUD(クラッド)」と呼びます。これは、以下の4つの動きの頭文字を取ったものです。

  • Create(作成):新しいデータを保存する(例:会員登録)
  • Read(読み取り):保存されているデータを表示する(例:記事一覧を表示)
  • Update(更新):既にあるデータを書き換える(例:プロフィールの変更)
  • Delete(削除):不要になったデータを消す(例:退会処理)

CodeIgniterのクエリビルダーを使えば、これら全ての操作をたった数行のコードで実現できます。パソコンの操作に慣れていない方でも、まずは「読み取り」から順番に練習していけば、すぐに自由自在にデータを操れるようになりますよ。

3. データを取得する(Read)の基本構文

3. データを取得する(Read)の基本構文
3. データを取得する(Read)の基本構文

まずは、一番よく使う「データを取り出す」方法を見てみましょう。テーブルという「表」の中から全てのデータを取ってくるプログラムです。ここでは「users」という名前の表からデータを持ってくる例を紹介します。


// 「users」テーブルのデータをすべて取得する準備
$query = $this->db->get('users');

// 取得した結果を「配列」というデータの束として受け取る
$result = $query->result();

// 画面に表示してみる
foreach ($result as $row) {
    echo $row->name;
}

このコードの $this->db->get('users') という部分がクエリビルダーの魔法です。「データベースさん、usersテーブルを持ってきて(getして)ください」とお願いしているイメージですね。取得したデータは foreach という命令を使って、一人分ずつ順番に画面に表示させています。

4. 条件を絞ってデータを探す(Where句)

4. 条件を絞ってデータを探す(Where句)
4. 条件を絞ってデータを探す(Where句)

全てのデータではなく、「特定の誰か」や「特定の条件に合うもの」だけを探したい場合もありますよね。例えば「IDが5番のユーザーだけを表示したい」という時は、where という命令を使います。


// IDが5番のユーザーを指定する
$this->db->where('id', 5);

// その条件でusersテーブルからデータを取得する
$query = $this->db->get('users');

// 1件だけデータを取り出す
$user = $query->row();

echo $user->name . 'さんの情報を表示しています。';

where は「~のとき」という意味です。このコードは「idが5のときのデータを取ってきて」という命令になります。複数の条件を組み合わせることもできるので、「名前が『田中』で、かつ年齢が『20歳』の人」といった細かい検索も簡単に作ることが可能です。

5. 新しいデータを追加する(Create)

5. 新しいデータを追加する(Create)
5. 新しいデータを追加する(Create)

次に、新しい情報をデータベースに保存する方法を学びましょう。これはお問い合わせフォームの送信や、ブログの新規投稿などで使われます。データを「連想配列(れんそうはいれつ)」という形式で準備するのがコツです。


// 保存したいデータを準備する
$data = array(
    'title'   => '初めてのブログ投稿',
    'content' => '今日はCodeIgniterの勉強をしました!',
    'author'  => 'プログラミング初心者'
);

// 「posts」というテーブルにデータを流し込む
$this->db->insert('posts', $data);

echo '無事に投稿が完了しました!';

insert(インサート)は「差し込む」という意味です。箱(テーブル)の中に、準備した手紙(データ)を入れるイメージですね。これだけで、データベースに新しい1行が追加されます。難しい設定は必要ありません。

6. データを更新・削除する方法(Update / Delete)

6. データを更新・削除する方法(Update / Delete)
6. データを更新・削除する方法(Update / Delete)

最後に、データの書き換えと削除について解説します。これらは「どのデータを対象にするか」をしっかり指定しないと、全てのデータが書き換わったり消えたりしてしまうので注意が必要です。必ず where とセットで使いましょう。


// --- データの更新(Update) ---
$update_data = array(
    'email' => 'new-address@example.com'
);

// IDが10番の人だけを更新対象にする
$this->db->where('id', 10);
$this->db->update('users', $update_data);


// --- データの削除(Delete) ---
// IDが15番の人を削除する
$this->db->where('id', 15);
$this->db->delete('users');

更新は update、削除は delete という単語を使います。どちらも where で対象をピンポイントに指定しているのがわかりますね。もし where を書き忘れて実行してしまうと、データベース内の全員のメールアドレスが変わってしまったり、全員のデータが消えてしまったりという大惨事になるので、ここだけは慎重に操作しましょう。

7. クエリビルダーを使うメリット

7. クエリビルダーを使うメリット
7. クエリビルダーを使うメリット

なぜ直接SQLを書かずにクエリビルダーを使うのか、その理由は「コードの読みやすさ」と「安全性」にあります。プログラミングのコードは、後から自分や他の人が見返したときに、何をしているかすぐに理解できることがとても大切です。クエリビルダーの命令は getinsert など、動作がそのまま名前になっているので、まるで英語のノートを読んでいるかのように内容を把握できます。

また、パソコンの操作に不慣れなうちは、ついついセキュリティ対策を忘れがちですが、CodeIgniterが裏側で「危ない文字」を自動的にチェックして無害化してくれます。これにより、ハッカーなどの攻撃から大切なデータを守ることができるのです。初心者こそ、この安全なレールの上を走ることで、挫折せずに学習を進めることができます。

8. モデル(Model)の中での書き方

8. モデル(Model)の中での書き方
8. モデル(Model)の中での書き方

CodeIgniterでは、これらのデータベース操作を「モデル」という専用のファイルの中に書くのがルールです。モデルは、いわば「データ管理の専門家」です。コントローラーが「料理を出すウェイター」、ビューが「盛り付けられたお皿」だとしたら、モデルは「食材を管理する倉庫番」のような役割です。

モデルの中にクエリビルダーの処理をまとめておくことで、プログラム全体がスッキリと整理されます。例えば、「ユーザー情報を取得する」という処理を一度モデルに書いておけば、色々なページでその機能を使い回すことができます。このように、役割を分担させることで、大規模なシステムも効率よく作れるようになるのです。

まとめ

まとめ
まとめ

CodeIgniterのQuery Builderを振り返る

ここまで、CodeIgniterのQuery Builderを使ったデータベース操作について学んできました。Webアプリケーションを作るうえで、データベースとのやり取りは避けて通れない重要な技術です。ユーザー情報の保存、ブログ記事の投稿、商品データの管理など、多くの機能はデータベースと連携することで初めて実現できます。

CodeIgniterのQuery Builderは、SQLという専門的な言語を直接書かなくても、PHPのメソッドを組み合わせるだけでデータベースを安全に操作できる仕組みです。これにより、初心者でも読みやすく理解しやすいコードを書くことができ、開発のスピードも大きく向上します。特に、データ取得、データ追加、データ更新、データ削除といった基本操作を簡潔に書けることが大きな特徴です。

データベース操作の基本CRUDを理解する

データベースを扱ううえで覚えておきたい基本概念がCRUDです。これはCreate、Read、Update、Deleteの頭文字を取った言葉であり、Webシステムにおける基本的なデータ操作を意味します。Query Builderを使うことで、これらの処理をとてもシンプルなコードで実装できます。

例えばユーザー一覧を表示する場合はRead処理になりますし、会員登録フォームから情報を保存する場合はCreate処理になります。また、プロフィール編集はUpdate、退会処理はDeleteにあたります。このように、多くのWeb機能はCRUDの組み合わせで作られています。

Query Builderでデータを取得する基本例

Query Builderを使えば、データベースからのデータ取得もとてもシンプルに書くことができます。usersテーブルからユーザー情報を取得する場合の基本的な例をもう一度確認してみましょう。データベース操作の基礎として、この書き方は何度も登場します。


$query = $this->db->get('users');

$result = $query->result();

foreach ($result as $row) {
    echo $row->name;
}

このように、getメソッドを使うことで指定したテーブルのデータを取得できます。そして取得したデータをforeach文で繰り返し処理することで、ユーザー一覧画面や記事一覧画面などを簡単に作ることができます。CodeIgniterのデータベース操作は、このように直感的で理解しやすい書き方になっています。

条件検索Where句を活用する

データベースの操作では、特定の条件に一致するデータだけを取得する場面が多くあります。例えば、特定のユーザーIDの情報だけを取得したい場合や、特定のカテゴリーの記事だけを表示したい場合などです。そのようなときに利用するのがWhere句です。


$this->db->where('id', 5);
$query = $this->db->get('users');

$user = $query->row();

echo $user->name;

whereメソッドを利用することで、指定した条件に一致するデータだけを取得できます。この仕組みを理解しておくと、検索機能や詳細ページの作成など、多くの実装に応用できます。Web開発では非常によく使うテクニックなので、しっかり覚えておきましょう。

データ登録処理の基本構造

新しいデータをデータベースへ登録する場合はinsertメソッドを使用します。お問い合わせフォームやユーザー登録機能など、Webサービスでは頻繁に使われる処理です。登録するデータは配列として用意するのが基本になります。


$data = array(
    'title'   => 'サンプル記事',
    'content' => 'CodeIgniterのQuery Builderを学習中です',
    'author'  => 'プログラミング学習者'
);

$this->db->insert('posts', $data);

このように配列にデータをまとめてinsertメソッドに渡すことで、データベースのテーブルに新しいレコードが追加されます。非常にシンプルな構造ですが、ブログ投稿機能や商品登録機能など、多くの実用的なシステムの基礎となる処理です。

データ更新と削除の重要ポイント

データ更新や削除を行う場合は、対象データを正しく指定することがとても重要です。特にwhere句を忘れてしまうと、全てのデータが変更されてしまう危険があります。安全なデータベース運用のためにも、必ず条件指定を行うようにしましょう。


$update_data = array(
    'email' => 'newmail@example.com'
);

$this->db->where('id', 10);
$this->db->update('users', $update_data);


$this->db->where('id', 15);
$this->db->delete('users');

updateはデータの更新、deleteはデータの削除を意味します。どちらもwhere条件と組み合わせることで、安全に対象データを操作することができます。実務の開発でもこの基本ルールは非常に重要です。

モデルに処理をまとめる設計の重要性

CodeIgniterでは、データベース操作をモデルにまとめて書くのが基本的な設計になります。モデルはデータを管理する役割を持つファイルであり、コントローラーやビューから呼び出して使用します。このように役割ごとにコードを分けることで、プログラム全体の構造が整理され、保守しやすいシステムになります。

例えばユーザー情報を取得する処理をモデルに書いておけば、ユーザー一覧ページやプロフィールページなど、複数の場所で同じ処理を再利用できます。この設計思想はMVCと呼ばれ、CodeIgniterをはじめ多くのフレームワークで採用されています。

Query Builderを理解することで、CodeIgniterのデータベース操作は一気に身近なものになります。最初は小さなプログラムからでも構いません。ユーザー一覧表示、投稿登録、プロフィール更新など、CRUD操作を少しずつ実装していくことで、Webアプリケーション開発の基礎力が着実に身についていきます。データベースとアプリケーションをつなぐこの技術をしっかり身につけて、実践的なWebシステム開発へとステップアップしていきましょう。

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

生徒

今日の内容を振り返ると、CodeIgniterのQuery Builderを使うとSQLを書かなくてもデータベース操作ができるということが分かりました。データ取得や登録、更新、削除がとてもシンプルなコードで書けるのが印象的でした。

先生

その通りですね。Query Builderはデータベース操作を分かりやすくするための便利な仕組みです。特にWebアプリケーションではユーザー情報や記事データなど、多くのデータを扱うため、この仕組みを理解しておくことはとても重要です。

生徒

CRUDという言葉も初めて知りました。Create、Read、Update、Deleteの四つがデータベース操作の基本なんですね。

先生

そうです。ほとんどのWebシステムはこの四つの処理の組み合わせで作られています。例えば会員登録はCreate、ユーザー一覧はRead、プロフィール変更はUpdate、退会はDeleteです。

生徒

whereを使って条件を指定するところも重要だと感じました。これを忘れると全部のデータが変わってしまう可能性があるんですね。

先生

とても良いポイントに気づきました。実際の開発でもwhereの書き忘れはよくあるミスです。必ず条件を確認してからupdateやdeleteを実行するようにしましょう。

生徒

モデルにデータベース処理をまとめるという設計も理解できました。処理を整理して書くことが大切なんですね。

先生

その理解で完璧です。モデルを活用すればコードの再利用性が高まり、読みやすく保守しやすいプログラムになります。これからCodeIgniterでアプリケーションを作るときは、Query Builderとモデル設計を意識して開発していきましょう。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説
New2
Laravel
Laravelでマルチ言語ルートを設定する方法!ロケールごとのprefixで簡単管理
New4
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.2
Java&Spring記事人気No2
Symfony
SymfonyのRemember Me機能を完全解説!初心者でもわかるログイン保持の仕組み
No.3
Java&Spring記事人気No3
Laravel
Laravelでルートに中間処理を追加する方法!ミドルウェア活用ガイド
No.4
Java&Spring記事人気No4
Laravel
LaravelのFeatureテストとUnitテストの違いを理解しよう
No.5
Java&Spring記事人気No5
CodeIgniter
CodeIgniterで多言語対応(Language)を徹底解説!言語切り替え機能を実装
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Laravel
Laravelでドメインルートを使う方法!マルチドメイン対応を初心者向けに解説
No.8
Java&Spring記事人気No8
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説