【CodeIgniter4】PostgreSQLに接続してデータを取得する方法
はい、hebiです。
CodeIgniter4では、DBの接続情報を設定するだけで簡単にデータを取得できます。
今回は、PostgreSQLのDBからデータを取得する方法に焦点を当てて、データベースクエリビルダーを利用してデータを取得する記事を作成します。
環境
環境は以下の記事で作成した環境を利用する前提とします。
データ取得までの手順
PostgreSQLのDBからデータを取得する方法を説明します!
phpでpostgresqlを操作できるようにするために、php-pgsqlをインストールします。
sudo yum install php-pgsql
インストールが完了したら、Webサービスを再起動します。(Apache)
sudo systemctl restart httpd
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というフレームワークを選択肢の一つに加えてみてはいかがでしょうか?これからも、実務で実際に利用した機能などを記事にしていこうと思います(^^)/
最後までお読みいただきありがとうございました(^^♪