私は CI に不慣れで、CI でデータベースを切り替える方法があることを知りたいだけです。たとえば、ログイン ページには、接続するデータベースを指定できるドロップダウン リストがあります。表示は次のようになります。
<select name="select" id="select" >
<option value="1">DB1</option>
<option value="2">DB2</option>
</select>
そして、database.php に 2 つのデータベースを取得しました。1 つはデフォルトでdefault
、もう1 つはlocal
デフォルトのデータベースを使用しています。
$active_group = 'default';
$active_record = TRUE;
私の質問は、ドロップダウン値に基づいて db を指定する方法です。たとえば、DB1 を選択し、デフォルトのものに接続し、DB2 をローカルのものに接続するとします....手動で db を切り替える方法を知っています:
$this->load->database('default', TRUE); OR
$this->load->database('local', TRUE);
コントローラーとモデルが異なるため、どうすればこれを達成できますか...次のように試しました:最初にログイン関数でドロップダウンリストの値を取得します:
$this->load->model('My_Model');
$db = $this->input->post('select')
$this->My_Model->getDB($db);
そして、私のモデルでは関数を取得しました:
function getDB($db)
{
if($db ==1)
{
$this->db = $this->load->database('default', TRUE);
}
elseif($db ==2)
{
$this->db = $this->load->database('local', TRUE);
}
}
残念ながら、それは機能しません.....どんな助けでも大歓迎です!!!!