2015-08-21 2 views
0

Pouvons-nous modifier dynamiquement des arguments tels que le nom d'hôte, le nom d'utilisateur, le mot de passe et la base de données ou nous devons aller dans database.php pour le modifier.Codeigniter: Modifier dynamiquement les arguments de la base de données

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = '****'; 
$db['default']['database'] = 'database'; 
$db['default']['dbdriver'] = 'mysql'; 
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = TRUE; 
$db['default']['db_debug'] = TRUE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ''; 

Y at-il une possibilité de les changer dynamiquement?

+0

Essayez-vous de changer les connexions de base de données dans différentes parties du même site ou simplement changer les connexions en fonction de l'environnement du site? – jbrya029

Répondre

1

Je pense que quelque chose comme ça fonctionnerait, dans un modèle ou une bibliothèque.

$dynamic = array(
    'hostname' => 'localhost', 
    'username' => 'root', 
    'password' => '*****', 
    'database' => 'database' 
); 
$test['hostname'] = $dynamic['hostname']; 
$test['username'] = $dynamic['username']; 
$test['password'] = $dynamic['password']; 
$test['database'] = $dynamic['database']; 
$test['dbdriver'] = 'mysqli'; 
$test['dbprefix'] = ''; 
$test['pconnect'] = FALSE; 
$test['db_debug'] = TRUE; 
$test['cache_on'] = FALSE; 
$test['cachedir'] = ''; 
$test['char_set'] = 'utf8'; 
$test['dbcollat'] = 'utf8_general_ci'; 

$test_db = $this->load->database($test, true); 

Ensuite, vous auriez accès à cette base de données, comme ceci;

$test_db->get('users'); 

Où prévoyez-vous obtenir les paramètres $dynamic?

+0

Je veux créer un formulaire pour le paramétrage de la base de données, au lieu d'entrer dans database.php pour configer –

+0

Le code que j'ai posté va se connecter à une base de données, en utilisant les détails du tableau '$ dynamic'. D'où proviennent ces données, c'est à vous de décider. – Craig