CodeIgniter 設定されているdbprefixを変更する

2017年11月1日

config/database.phpでdbprefixを設定している時、dbprefixがついていないテーブルにアクセスしたいことがあったのですが、Query Builder Classの関数だと自動でdbprefixをつけてくれるのでアクセスできないという現象がありました。

「set_dbprefix」関数を使用する

「set_dbprefix」関数を使用するとdbprefixを一時的に変更できます

$default_dbprefix = $this->db->dbprefix;
$this->db->set_dbprefix('');

$this->db->select('*');
$this->db->from('table_name');
・・・

$this->db->set_dbprefix($default_dbprefix);

参考リンク

  1. Query Builder Class — CodeIgniter 3.1.6 documentation
  2. CodeIgniter3 + 認証系ライブラリ「Cartalyst Sentry」で、MySQLのテーブル名にプレフィクスをつけたい - Qiita