[Résolu] Choisir une base de données de façon dynamique ?


(Analepse) #1

Bonjour tout le monde !

Ca fait très peu de temps que j’utilise Yii, et jusqu’ici je pouvais répondre à toutes mes questions en suivant des tutos en ligne ou en lisant les messages d’autres utilisateurs … mais ça fait maintenant 2 jours (sans compter le week end bien sûr) que je suis bloquée … donc me voilà !

La situation est la suivante :

  • Chaque client que je dois gérer possède une base de données db_assistant+numéro-client (par exemple db_assistant1.

  • Les clients et les bases de données qui leur sont associées sont listés dans la table clients de la base db_client.

  • On ne peut pas se connecter à l’application via son compte client : il faut utiliser les comptes utilisateurs dans la base de données db_assistant.

La connexion à l’application se fait donc ainsi :

[list=1]

[*]Le client entre son numéro client, son login et son mot de passe.

[*]Je regarde si le numéro client saisi correspond à quelque chose dans la base db_client.

[*]Si oui, je me connecte à la base de données associée à ce client, et je regarde s’il existe un utilisateur correspondant au login saisi.

[*]Si oui, je vérifie que le mot de passe saisi correspond au mot de passe de l’utilisateur.

[*]Si oui, je connecte l’utilisateur.

[/list]

Il me faudrait donc un fichier de configuration comme ceci :


...


//On se connecte à la base de donnée recensant les clients

'db' => array(

'connectionString' => 'mysql:host=localhost;dbname=db_client',

'emulatePrepare' => true,

'username' => '*****',

'password' => '*****',

'charset' => 'utf8'

),

		

//On se connecte à la base du client

'dbperso'=> array(

'connectionString' => $sgbd.':host='.$host.';dbname='.$dbname,

'emulatePrepare' => true,

'username' => $utilisateur,

'password' => $pass,

'charset' => 'utf8',

'class' => 'CDbConnection'

),

...

Mon problème est : comment transmettre des valeurs depuis mon contrôleur, jusqu’au fichier de configuration ?

J’ai essayé de mettre mes valeurs dans des variables sessions entre l’étape 2 et l’étape 3, mais je n’ai pas eu beaucoup de succès ^^’


(Abennouna) #2

Bonjour.

Je pense que ce fil peut vous être utile, en particulier le commentaire de conclusion (#9)


(Analepse) #3

Merci, c’est exactement ce qu’il me fallait ! - [size=“1”]j’avais pas assez cherché il faut croire, je pense que je ne suis pas très douée pour faire des recherches en anglais…[/size]