Mysqlをメインデータベースと使用していますが、ProgreSQLからデータを取得する必要があり、2つ目のデータベースを設定したので、その方法を紹介します。
目次
ProgreSQL接続の確認
phpinfoを開いて、pgsqlのdriverが使用できる状態になっているか確認してください。
できてない場合は、php.iniの設定等を行ってください
データベースの接続設定
今回のデータベース設定は、app\Config\Database.phpで行っていますので、PostgreSQLの設定を追加します。MySqlのデータベースを追加する場合も同様になります。
public $default = []の内容をコピーし、下に貼り付けてください。
2番目のデータベースの設定をここに記入すればOKです。
ublic $secondDB = [ //クラスプロパティ名は接続名になります。
'DSN' => '',
'hostname' => 'localhost', //記入
'username' => 'postgres', //記入
'password' => 'password', //記入
'database' => 'postgres', //記入
'DBDriver' => 'postgre', //記入
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'cacheOn' => false,
'cacheDir' => '',
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 5432, //ポートを確認してください
];
モデルの設定
app\Models\に新しいモデルを設定します。pgsqlModel.phpのように、新しいモデルファイルを作成します。$DBGroupに、接続名を設定します。他の設定は、一つ目のデータベースと同様に設定してください。
use CodeIgniter\Model;
class PgsqlModel extends Model{
protected $DBGroup = '$secondDB'; //上記で設定した接続名を設定します。
protected $table = 'table_name';
protected $primaryKey = 'id';
protected $returnType = 'array';
protected $useSoftDeletes = false;
protected $allowedFields = ['id', 'family_name', 'first_name', 'telephone', 'eMail'];
protected $useTimestamps = false;
//protected $createdField = 'created_at';
//protected $updatedField = 'updated_at';
//protected $deletedField = 'deleted_at';
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = false;
}
コントローラーの設定
ネームスペースに、モデルを設定する
namespace App\Controllers;
use App\Models\defaultDBModel;
use App\Models\PgsqlModel; //モデルを追記する
コンストラクターにデータベース接続を追記する。
public function __construct(){
$this->db=\Config\Database::connect();
$this->db1=\Config\Database::connect("secondDB"); //追記する
}
以上で完了です。
——ホタイブログ—–
関連記事
Chart.js 複数軸で右表示しない、min/max設定ができない
CodeIgniter4 MS SQL SERVERの接続
JSONを使ったDataTablesに編集ボタンを実装する。
CodeIgniter4にJSONを使ってDataTablesを実装する
CodeIgniter4にBootstrap、DataTablesを使ったページネーション
CodeIgniter4 シンプルなページネーションの実装
コメント