sql >> Database >  >> RDS >> Mysql

Codeigniter dynamische databaseverbinding

U moet alle database-informatie opgeven in application/config/database.php´

Normaal gesproken zou u de standaard databasegroep als volgt instellen:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$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;

Merk op dat de aanmeldingsgegevens en instellingen worden gegeven in de array met de naam $db['default'] .

Je kunt dan nog een database toevoegen aan een nieuwe array - laten we het 'anotherdb' noemen.

$db['anotherdb']['hostname'] = "localhost";
$db['anotherdb']['username'] = "root";
$db['anotherdb']['password'] = "";
$db['anotherdb']['database'] = "another_database_name";
$db['anotherdb']['dbdriver'] = "mysql";
$db['anotherdb']['dbprefix'] = "";
$db['anotherdb']['pconnect'] = TRUE;
$db['anotherdb']['db_debug'] = FALSE;
$db['anotherdb']['cache_on'] = FALSE;
$db['anotherdb']['cachedir'] = "";
$db['anotherdb']['char_set'] = "utf8";
$db['anotherdb']['dbcollat'] = "utf8_general_ci";
$db['anotherdb']['swap_pre'] = "";
$db['anotherdb']['autoinit'] = TRUE;
$db['anotherdb']['stricton'] = FALSE;

Als je nu de tweede database wilt gebruiken, ga dan gewoon

$DB_another = $this->load->database('anotherdb', TRUE); 

en dan, in plaats van $this->db->foo() , zul je $DB_another->foo()

en je kunt dit uitbreiden naar meerdere groepen zoals deze

 $DB2 = $this->load->database('anotherdb1', TRUE); 
 $DB3 = $this->load->database('anotherdb2', TRUE); 

Kijk voor details hier:http://ellislab.com/codeigniter/ gebruikershandleiding/database/connecting.html



  1. MySql en het invoegen van het laatste ID-probleem blijft bestaan

  2. Waarom is CTE beter dan cursor/afgeleide tabel/subquery's/temp-tabel enz.?

  3. Hoe u uw bedrijf kunt moderniseren in 2022

  4. Probleem met machtigingen in SSMS:de SELECT-machtiging is geweigerd voor het object 'extended_properties', database 'mssqlsystem_resource', ... Fout 229)