5

私は 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);
    }
}

残念ながら、それは機能しません.....どんな助けでも大歓迎です!!!!

4

1 に答える 1