Вам понадобится основная база данных для аутентификации пользователя и хранения информации в любом случае, верно? Так что вам нужно управлять двумя соединениями. Там вы можете установить соединение по умолчанию, а затем установить свою вторую конфигурацию в MY_Controller .
Этот MY_Controller будет обрабатывать обнаружение пользователя (из автоматически загруженного класса базы данных и любой используемой вами системы модель / lib / auth), тогда он, конечно, получит имя базы данных от пользователя, однако оно может быть присоединено. *
Затем вы можете использовать код, подобный этому, чтобы установить 2-й дБ:
class MY_Controller extends Controller
{
function MY_Controller () {
parent::Controller();
$this->user = $this->auth->get_user($this->input->post('username'), $this->input->post('password'));
$this->company = $this->company->get($this->input->post('company_id'));
$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = $this->company->database;
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = "";
$config['char_set'] = "utf8";
$config['dbcollat'] = "utf8_general_ci";
$this->company_db = $this->load->database($config, TRUE);
}
}
Затем вы можете взаимодействовать с $ this-> company_db, а также с $ this-> db. Первый предназначен для взаимодействия с БД с их базой данных, второй - для взаимодействия с основным соединением по умолчанию.