Ich arbeite an einem Codeigniterrahmen und ich muss zwischen verschiedenen Datenbanken wechseln, um Abfragen auszuführen.Codeigniter zwischen Datenbanken wechseln
Nach Codeigniter 3.0.6 Dokumentation kann ich $ this-> db-> db_select ('db_name') verwenden, um die DB dynamisch zu ändern. Aber es scheint überhaupt nicht zu funktionieren.
ich eine Sandbox wie diese erstellt habe:
$this->load->database();
$this->load->dbutil();
br('========Start========');
$dbs = $this->dbutil->list_databases();
foreach ($dbs as $db)
{
if ($db == 'information_schema')
continue;
br($db);
$this->db->db_select($db);
if ($this->db->table_exists('users'))
br('Yes');
else
br('No');
echo $this->db->last_query();
//$tables = $this->db->list_tables();
//pp($tables);
br('-----------------------');
}
br('========End========');
Das Ergebnis ist: er druckt verschiedenen DB-Namen, aber die JA/NEIN und last_query sind alle gleich, und es ist immer am ersten DB laufen.
Also erstelle ich einen weiteren Test, um DB manuell zu wechseln und das Ergebnis ist das gleiche.
Ich versuche auch den DB-Namen in Config zu entfernen/database.php und setzten $ this-> db-> db_select ('my_third_db_name') und es immer die Abfrage auf dieser dritten DB laufen.
Habe ich etwas im Code übersehen? oder hier ist ein Fehler?
Dank
P/S: Im nur 1 Host-Anschluss, und es gibt in diesem Wirt viele Datenbanken. Und die Verbindung ist gut funktionieren
Sind die gleichen Anmeldeinformationen (Benutzer-ID/Kennwort) für beide Datenbanken gültig? – RiggsFolly
Diese Frage ist wie beantwortet in [dieser Link] (http://stackoverflow.com/questions/36742213/can-we-use-two-database-in-same-view-in-codeigner/36746362#36746362) – elddenmedio
@ RiggsFolly Im Verbindung mit nur 1 Host und es funktioniert normal. Ich will nur die DB wechseln, nicht der Host –