勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

Codeigniter3で異なるデータベースを使用する

   2024/01/01  PHP CodeIgniter

Codeigniterで2つのコンテンツがあって、それぞれ別のデータベースを使用したかった。調べてみると以下方法で対応できた。

 

■事前設定

「codeigniter/config/database.php」に新たにデータベース情報を追記する。

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'MySQLのユーザー名',
	'password' => 'MySQLのパスワード',
	'database' => '使用するデータベース名',
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

//↓↓を追記する
$db['db2'] = array( //キーをdefaultとは違うものにする
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'MySQLのユーザー名',
	'password' => 'MySQLのパスワード',
	'database' => '使用するデータベース名',
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

 

■使用方法

モデル側でデータベースを読み込む際に、引数を入れる。

function __construct()
{
	parent::__construct();
	$this->load->database('db2');
}

引数は先ほど設定した配列のキーを入れる。

 

■その他

特に問題なくいけたけど、1つのコンテンツで複数のデータベースを使う時とかはもしかすると面倒なのかも。

 - PHP CodeIgniter

  関連記事

CodeIgniter3で共通の変数と定数を設定する方法

CodeIgniter3系で共通する配列が入った変数と、定数を設定したかった。以 ...

CodeIgniter4でのメール送信方法(テキスト・HTMLメール)

CodeIgniter4.4.4でテキストメール及びHTMLメールを送信したい。 ...

CodeIgniter3でファイルキャッシュする方法

CodeIgniterでファイルキャッシュが楽に導入できた。そこそこ使いそうなの ...

CodeIgniter4 & reCAPTCHA でお問い合わせフォームを作成する方法

以前CodeIgniter4.4.4で簡易的なお問い合わせページを作成したが、今 ...

Codeigniter4で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法

Codeigniter4.4.4でCSS及びJavaScriptファイルを設置し ...