Ver Mensaje Individual
  #12 (permalink)  
Antiguo 29/01/2010, 05:20
Aragorn_miki
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: ZF, configurar una BBDD por módulo

Yo para conectarme a diferentes Basesdedatos uso esta funcion en el Bootstrap.php:

Código:
protected function _initDatabaseRegistry()
{        	
//Obtenemos el nombre de la url 
$direc = $_SERVER['SERVER_NAME'];
		
//definimos el nombre de la bd y la tabla
if ($direc == "www.pag.com"){$table_name = 'em_t1';	$db_selection = 'db_es';}
elseif ($direc == "ar.pag.com"){$table_name = 'em_t2'; $db_selection = db_ar';}
elseif ($direc == 'cl.pag.com'){$table_name = 'em_t3'; $db_selection = 'db_cl';}
elseif ($direc == 'co.pag.com'){$table_name = 'em_t4';	$db_selection = 'db_co';}
elseif ($direc == 'mx.pag.com'){$table_name = 'em_t5_mx';	$db_selection = 'db_mx';}
elseif ($direc == 'it.pag.com'){$table_name = 'em_t6_it'; $db_selection = 'db_it';}
elseif ($direc == 'fr.pag.com'){$table_name = 'em_t7_fr'; $db_selection = 'db_fr';}
	elseif ($direc == 'uk.pag.com'){$table_name = 'em_t8_uk'; $db_selection = 'db_uk';}
	elseif ($direc == 'de.pag.com'){$table_name = 'em_t8_de'; $db_selection = 'db_de';}
	elseif ($direc == 'us.pag.com'){$table_name = 'em_t9_us'; $db_selection = 'db_us';}
	elseif ($direc == 'in.pag.com'){$table_name = 'em_t10_in'; $db_selection = 'db_in';}
	elseif ($direc == 'ij.pag.com'){$table_name = 'em_t11';	$db_selection = 'db_ij';}
		
// carga de configuracion
$dbconf = $this->getOption($db_selection);
//definimos la tabla de la base de datos
define($table_name, $dbconf->db->table->prefix);
// cargar conexion
$db = new Zend_Db_Adapter_Pdo_Mysql ($dbconf);
// guardar en registro
Zend_Registry::set ( "database", $db );
		
return $db;
}
Con esto consigo que segun la url que ingrese pueda acceder a una base de datos y su tabla correspondiente.

$db_selection = 'db_es' hacen referencia a las definiciones del application.ini de las bbdd.

$table_name = 'em_t1' lo uso en el modulo unico que tengo para hacer las consultas y que las consultas que uiero hacer son las mismas para todas las bbdd y las estructuras de las tablas son iguales.

Por si a alguien le puede resultar util.