CodeIgniter & DBForge - Créer une Base de données et des Tables
Je suis en train d'écrire un script dans CodeIgniter qui permettra de créer une base de données et ensuite ajouter des tables pour que la base de données nouvellement créée, ainsi que divers champs de la nouvelle table.
Jusqu'à présent, j'ai dbforge pour créer la nouvelle base de données, mais depuis que je suis en utilisant la base de données de la bibliothèque et de pré-définir la base de données de valeurs de connexion, quand il s'agit de créer une table, il la met dans la pré-sélectionnée de la base de données et non pas celui qu'il vient de créer.
Dans le database.php fichier de config j'ai le texte suivant:
$db['default']['database'] = 'db1';
Si j'utilise la commande suivante pour créer une nouvelle base de données:
$this->dbforge->create_database('db2');
'db2' aurez créé, mais ensuite la commande suivante met la table dans 'db1'.
$this->dbforge->create_table('table1');
J'ai besoin de "table1" créé en 'db2'. Comment puis-je obtenir CI pour sélectionner la base de données nouvellement créée ('db2') afin de créer la table dans la bonne place, et puis revenir à 'db1'?
J'ai regardé la question suivante qui est similaire à ce que je fais mais je ne veux pas avoir à mettre de toute autre connexion des entrées dans la database.php
Codeigniter montre l'erreur: Pas de base de données sélectionné
Toute aide appréciée!
MODIFIER - je dois ajouter que le create_database pouviez avoir n'importe quel nom pour le nom de base de données... C'est un script pour créer automatiquement une base de données et les tables où l'DB nom est tiré à partir d'un formulaire.
OriginalL'auteur pmgrace | 2013-05-11
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Ben Stonehouse
OriginalL'auteur Mrudul
que votre base de données par défaut dans la config est db1 create_table méthode sera toujours créer une table dans la base de données sélectionnée, après la création de db2, vous devez sélectionner db2 pour créer la table dans la base de données vous pouvez le faire en suivant de façon
pour plus d'informations, veuillez consulter CI-guide de l'utilisateur CI-Guide de l'utilisateur de la Connexion de Base de données
OriginalL'auteur umefarooq
modifier la connexion à la base de codeigniter migration
J'ai utilisé la suggestion fournis dans la question ci-dessus pour résoudre mon problème. Après j'ai créer la deuxième base de données, j'ai utilisé la commande suivante pour passer à:
Cela me permet de créer les tables dans la base de données db2. Ensuite utilisés pour revenir à la valeur par défaut de la base de données:
Fonctionne exactement comme je le souhaite.
OriginalL'auteur pmgrace
OriginalL'auteur Malek
Une meilleure façon est d'obtenir un dbforge classe représentant la base de données que vous souhaitez manipuler
Utiliser le
$this->myforge
objet à travailler comme d'habitude.Cette méthode permet d'éviter les conflits lors de la construction de bibliothèques. Il est préférable de ne pas salir avec la valeur par défaut de la base de données de vos utilisateurs de la bibliothèque au moment de l'exécution.
OriginalL'auteur francis994
Lorsque vous souhaitez utiliser 2 de la Base de données sur le projet, puis vous devez d'abord définir utilisent la base de données as -
Lorsque vous vous connectez cette façon, vous pourrez utiliser votre nom d'objet pour émettre des commandes plutôt que la syntaxe utilisée dans le présent guide. En d'autres termes, plutôt que d'émettre des commandes avec:
etc...
Vous utilisez plutôt:
etc...
OriginalL'auteur Chaudhary Sushil