Hola a todos
Acabo de empezar a introducirme en codeigniter hace pocos dias, ademas de ser el 1 framework de PHP que utilizo con lo cual soy "carne" de errores y meteduras de pata constantes ;D
En concreto tengo unas cuantas dudas de caracter conceptual que os planteo a continuación:
La primera es en relacion al uso del fichero de configuracion database.php.
En el se define la variable $active_group cuyo valor es el indice del array asociativo en donde se especifican los parametros de conexion la Base de datos por defecto.
Hasta aqui la configuracion por defecto de database.php.
Sin embargo yo no quiero que me cargue por defecto un solo perfil de conexion a la BBDD al acceder inicialmente al sitio (se trata de un blog de prueba). Mi idea es que cualquier usuario que haga signin, pueda establecer sesion con 2 perfiles posibles de permisos sobre UNA sola base de datos. En concreto: root, suscriptor. Obviamente desde mi panel de admon. de MySql yo ya he creado los usuarios "root" y "suscriptor" con los permisos uq e se les presupone a cada uno dada su funcion.
Para ello he creado 2 grupos en database.php:
$active_group='';
$db['root'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'root',
'database' => 'dzqynqsj_blog',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['suscriptor'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'suscriptor',
'password' => 'suscriptor',
'database' => 'dzqynqsj_blog',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
A la variable $active_group no le he asignado ninguno valor deliberadamente para evitar asi un perfil de conexion inicial.
A continuacion dentro del controlador users.php tengo la funcion que me valida el signin del usuario al BLOG y que verifica si ese usuario tiene perfil de "root" o de "suscriptor". Dentro de esa funcion he agregado un grupo condicional para controlar que valor de
he de dar a la variable $active_group que definí en database.php como vacia: $active_group=''.
public function validate(){
*
*
* Aqui va el codigo no relevante para mi consulta
*
*
/********* Con el siguiente codigo pretendo asignar uno de los 2 grupos a la variable
********* $active_group para que se produzca la conexion a la BBDD con uno de los
********* dos perfiles definidos en database.php ****************************/
if($username = 'admin') {
$active_group='root';
}
else {
$active_group='suscriptor';
}
$this->load->database('active_group');
//************************************************** *******
*
*
* Mas codigo irrelevante para la consulta
*
*
}
Obviamente esta mal ya que no asume ninguno de los dos usuarios de conexion a BBDD.
Disculpas anticipadas por las burradas que podais ver en el codigo ;)