プログラミング

【CodeIgniter4】PostgreSQLに接続してデータを取得する方法

hebishima.shogo

はい、hebiです。

CodeIgniter4では、DBの接続情報を設定するだけで簡単にデータを取得できます。

今回は、PostgreSQLのDBからデータを取得する方法に焦点を当てて、データベースクエリビルダーを利用してデータを取得する記事を作成します。

スポンサーリンク

環境

環境は以下の記事で作成した環境を利用する前提とします。

あわせて読みたい
Amazon LinuxにPHPとApacheをインストールする方法
Amazon LinuxにPHPとApacheをインストールする方法
あわせて読みたい
Amazon LinuxにPostgreSQLをインストールする方法
Amazon LinuxにPostgreSQLをインストールする方法
あわせて読みたい
【PHP】CodeIgniter4のインストール方法
【PHP】CodeIgniter4のインストール方法

データ取得までの手順

PostgreSQLのDBからデータを取得する方法を説明します!

php pgsqlパッケージのインストール

phpでpostgresqlを操作できるようにするために、php-pgsqlをインストールします。

sudo yum install php-pgsql

インストールが完了したら、Webサービスを再起動します。(Apache)

sudo systemctl restart httpd
CodeIgniter4の設定

CodeIgniter 4のデータベース設定を行います。
app/Config/Database.phpファイルを開き、PostgreSQLの設定を以下のように行います。

    public array $default = [
        'DSN'          => '',
        'hostname'     => 'localhost',
        'username'     => 'hebi',
        'password'     => 'password',
        'database'     => 'testdb',
        'DBDriver'     => 'Postgre',
        'DBPrefix'     => '',
        'pConnect'     => false,
        'DBDebug'      => (ENVIRONMENT !== 'production'),
        'charset'      => 'utf8',
        'DBCollat'     => 'utf8_general_ci',
        'swapPre'      => '',
        'encrypt'      => false,
        'compress'     => false,
        'strictOn'     => false,
        'failover'     => [],
        'port'         => 5432,
        'numberNative' => false,
    ];
モデルの作成

DBへアクセスしてデータを取得するためのモデルを作成します。

<?php

namespace App\Models;

use CodeIgniter\Model;

class HomeModel extends Model
{
    public function get_users()
    {
        // ここでデータベースからユーザーの情報を取得するクエリを実行する
        $builder = $this->db->table('users');
        $query = $builder->get();
        return $query->getResult();
    }
}

get_usersはusersテーブルのデータを取得する関数です。

dbインスタンスはModelクラスを継承することで利用できます。
$this->db->table(‘テーブル名’);でデータベースクエリビルダーのインスタンスを取得します。

取得したビルダーを使用してデータの取得などを行います。

コントローラからモデルを実行しデータ取得

コントローラからモデルのget_usersを呼び出してデータを取得します。

<?php

namespace App\Controllers;
use App\Models\UserModel; // UserModelをロード
class Home extends BaseController
{
    public function index(): string
    {
        $model = new UserModel(); // UserModelのインスタンスを作成
        $data['users'] = $model->get_users();
        return view('welcome_message');
    }
}

get_usersの戻り値($data[‘users’])には、テーブルから取得したデータが返されることを確認しました!

最後に

CodeIgniter4では、Database.phpにDBへの接続情報を設定するだけで簡単にデータを取得することができます!これほど簡単にできるとはビックリですね!

ぜひ、CodeIgniter4というフレームワークを選択肢の一つに加えてみてはいかがでしょうか?これからも、実務で実際に利用した機能などを記事にしていこうと思います(^^)/

最後までお読みいただきありがとうございました(^^♪

スポンサーリンク
ABOUT ME
hebi
hebi
エンジニア
フルスタックエンジニアとして活躍中。
HTML5プロフェッショナル認定Level1、Level2所持者です。

未経験の方でも簡単にプログラミングを学べるようにと情報を発信しております。
記事URLをコピーしました