I am working with application ( school management system ) i am to create a multi database driven app one separate database for each year.
my approach is that >> i made a form with select option something like that
<form method="POST" action="host/configure/select_database">
<select name="database">
<option value="2010">Year 2010</option>
<option value="2011">Year 2011</option>
<option value="2012">Year 2012</option>
<option value="2013">Year 2013</option>
<option value="2014">Year 2014</option>
<option value="2015">Year 2015</option>
<option value="soon...">So On ... </option>
</select>
<input type="submit" value="choose year"/>
</form>
when user select any year from given option my select_database will set database in order to work with
configure.php (controller)
public function select_database(){
session_start();
$_SESSION['current_database'] = $this->input->post('database');
redirect_to('/');
}
here is my selection of database code in database.php
database.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$database = isset($_SESSION['current_database'])?$_SESSION['current_database']:'2015';
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'Username';
$db['default']['password'] = "DbPassword";
$db['default']['database'] = $database;
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
this is my approach is there any other best way to change database from user choice please make me sure am i correct or not thanks
database.php, you can load the database in main controller.$this->load->database($this->input->post('database'), true);