2017-05-31 2 views
0

Ich bin neu in CodeIgniter und im Bau eines Projekts, wo ich auf etwa 40 Datenbanken zugreifen muss.Verwenden Sie mehrere Datenbanken in CodeIgniter ohne die Konfigurationsdatei

Jetzt alle in die Konfigurationsdatei hinzufügen scheint wie allot der innecizient Arbeit, auch wird es in Zukunft weitere Datenbanken hinzugefügt werden.

Gibt es eine Möglichkeit, auf eine Datenbank innerhalb des Codeigniter-Frameworks zuzugreifen, ohne die Datenbankkonfigurationseinstellungen zu verwenden?

Vielen Dank im Voraus!

Grüße,

Beakerv

+1

So möchten, wo Sie die Datenbank-Login-Informationen speichern, dann? Sie müssen sie irgendwo setzen ... – Jerodev

+0

Guter Punkt, ist es möglich, etwas wie eine Connectionstring innerhalb des codeigniter Rahmenwerks zu verwenden? So wie du es in normalen PHP ohne Codezeichner tun würdest? – Beakerv

+0

Ja können Sie DSN in coderigniter verwenden, oder Sie können benutzerdefinierte Konfiguration für Ihre Verbindung machen, beziehen Sie sich nur auf Codeigniter Tutorial hier https://codeigniter.com/user_guide/database/connecting.html –

Antwort

0

ja können Sie erreichen, was Sie

class Your_Model extends CI_Model 
{ 
    protected $customDb; 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->loadCustomerDatabase(); 
    } 

    private function loadCustomerDatabase() 
    { 
     //define your customers database 
     $config['hostname'] = 'localhost'; 
     $config['username'] = 'myusername'; 
     $config['password'] = 'mypassword'; 
     $config['database'] = 'your_db'; 
     $config['dbdriver'] = 'pdo'; 
     $config['dbprefix'] = ''; 
     $config['pconnect'] = FALSE; 
     $config['db_debug'] = TRUE; 
     $config['cache_on'] = FALSE; 
     $config['cachedir'] = ''; 
     $config['char_set'] = 'utf8'; 
     $config['dbcollat'] = 'utf8_general_ci'; 

     $this->customDb = $this->load->database($config, true); 

     //you can use this instance like any other db instance 
     $objQuery = $this->customDb->select("*")->from("your_table")->get(); 


    } 
} 
+0

Ah cool, ich wusste das nicht! Jetzt ist es möglich, die $ config ['database'] = 'your_db'; <- ein variabler Wert? So kann ich die Datenbank ändern, die bei der Eingabe aus einem Dropdown ausgewählt wird? – Beakerv

+0

natürlich ist es möglich - ersetzen Sie einfach diese Zeichenfolge durch eine deklarierte Variable – sintakonte

+0

Großartig, ich werde das versuchen, danke! – Beakerv

Verwandte Themen