nos vamos a
- \application\config\database.php
la variable $db es una array multidimensional donde podemos agregar avrios nombres que esto nos sirve para signar otra base de datos por defecto cuando bajas siempre encuentras el array con el nombre default ahora copiamos lo mismo y le colocamos el nombre de nuestra otra base de datos que no es necesariamente que se llame tal cual como se llama tu base de datos:
ejemplo:
el nuevo que agrego
ejemplo:
el nuevo que agrego
$db['MI_BASE_DE_DATOS'] |
el que esta por defecto
$db['default'] |
le damos los datos de conexion.
/*esta esta en otro servidor entonces debemos colocar la ip*/ $db['Billing']['hostname'] = 'xxxxxxxxxxx'; $db['Billing']['username'] = 'xxxxxxx'; $db['Billing']['password'] = xxxxxxxxxxx'; $db['Billing']['database'] = 'billing'; $db['Billing']['dbdriver'] = 'mysqli'; $db['default']['port'] = "3306"; $db['Billing']['dbprefix'] = ''; $db['Billing']['pconnect'] = TRUE; $db['Billing']['db_debug'] = TRUE; $db['Billing']['cache_on'] = FALSE; $db['Billing']['cachedir'] = ''; $db['Billing']['char_set'] = 'utf8'; $db['Billing']['dbcollat'] = 'utf8_general_ci'; $db['Billing']['swap_pre'] = ''; $active_group = 'default'; $active_record = TRUE; /*esta es la que tenemos en nuestro servidor*/$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'xxxx'; $db['default']['password'] = 'xxxxxxxx'; $db['default']['database'] = 'xxxxxxxxx'; $db['default']['dbdriver'] = 'mysqli'; $db['default']['port'] = "3306"; $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'] = ''; |
ahora desde un modelo o control podemos activar la conexion a la base de datos por que en codeignter solo tiene una que es la que colocamos pro defecto.
con esta linea de codigo lo activamos
$this->load->database("Billing",TRUE); |
aqui un ejemplo de la conexion desde el modelo
class Cuentas_model extends CI_Model { function __construct() { parent::__construct(); } function get_accounts() { /*la conexion a la otra base de datos*/ $db_billing = $this->load->database("Billing",TRUE); /*una consulta a esa base de datos*/ $query=$db_billing->query("select * from accounts"); return $query->result(); } } |
en el controlador
class Cuentas extends CI_Controller { public function __construct(){ parent::__construct(); $this->template->set_layout('layout.php'); $this->load->model("Cuentas_model","Cuentas"); } public function index() { $this->template->title('Cuentas'); /*llamamos al modelo y jalamos los datos*/ $data["listado"]=$this->Cuentas->get_accounts(); $this->template->build('distribuidores/cuentas/index',$data); } } |
en la vista
foreach ($listado as $item): echo $item->accountcode."<br />"; endforeach; |
con esto ya estamos manejando 2 base de datos y si quieren con mas base de datos los mismos pasos pero agregan en el array de base de datos.