Désolé si cela est une vraie question de débutant (également un débutant php), mais je ne peux pas le comprendre à partir de la documentation:bases de données de commutation dans CodeIgniter
Je veux être en mesure d'utiliser une base de données par défaut, si Je ne rien d'autre Indique combien, et fonctionne très bien en $ this-> db avec la configuration suivante:
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'ion_auth';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$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;
$db['visitorsDB']['hostname'] = 'localhost';
$db['visitorsDB']['username'] = 'root';
$db['visitorsDB']['password'] = 'root';
$db['visitorsDB']['database'] = 'visitorsDB';
$db['visitorsDB']['dbdriver'] = 'mysql';
$db['visitorsDB']['dbprefix'] = '';
$db['visitorsDB']['pconnect'] = TRUE;
$db['visitorsDB']['db_debug'] = TRUE;
$db['visitorsDB']['cache_on'] = FALSE;
$db['visitorsDB']['cachedir'] = '';
$db['visitorsDB']['char_set'] = 'utf8';
$db['visitorsDB']['dbcollat'] = 'utf8_general_ci';
$db['visitorsDB']['swap_pre'] = '';
$db['visitorsDB']['autoinit'] = TRUE;
$db['visitorsDB']['stricton'] = FALSE;
Mais je veux utiliser la deuxième base de données dans l'un de mes modèles, j'ai donc essayé ceci:
function __contruct() {
parent::__construct();
$this->db = $this->load->database('visitorsDB', TRUE);
}
public function getAllVisitors($paramArr) {
//$this->db = $this->load->database('visitorsDB', TRUE);
Mais ça ne marche pas. Seulement si je décommente la dernière ligne pour que je charge la base de données dans la méthode elle-même fonctionnera. Je ne comprends pas pourquoi. J'ai également essayé de déclarer une nouvelle variable de classe au début de la classe - private $ myDB; - puis en l'instanciant dans le constructeur - $ myDB = $ this-> load-> database ('visitorsDB', TRUE);
Mais cela n'a pas fonctionné non plus. Alors, comment puis-je changer de base de données pour l'ensemble du modèle?
Lorsque vous avez créé une nouvelle propriété dans votre modèle ('myDB' privé $) et a essayé de le mettre de votre constructeur avez-vous fait' $ myDB = ... 'ou' $ this-> myDB = ... '? – birderic