Estoy escribiendo una clase contenedora para mi sitio drupal 7 que me permite conectarme y consultar mi base de datos phpbb.Múltiples conexiones concurrentes de bases de datos en drupal 7
Cuando se conecta a una fuente de datos externa (según la documentación de drupal) ha establecido la base de datos activa, ejecuta la consulta, y luego establece el valor predeterminado de la base de datos activa.
p. Ej.
db_set_active('phpbb');
$result = db_query($sql,$args,$opts);
db_set_active();//back to default
Pero ¿hay alguna manera de utilizar envoltorio base de datos de Drupal para crear una conexión nueva marca que se puede establecer de forma permanente a la nueva base de datos sin tener que hacer esto conmutación de ida y vuelta sin sentido? seguramente podemos manejar conexiones a múltiples bases de datos al mismo tiempo.
He hecho algunas búsquedas en Google pero todavía no he encontrado a nadie que intente hacer esto.
http://drupal.org/node/18429 también tiene algunos ejemplos de código, especialmente si desea configurar dinámicamente la configuración de la base de datos, es decir, no codificada en settings.php. Por ejemplo, si almacenó configuraciones de la base de datos en algún lugar que no sea en settings.php, puede crear dinámicamente la matriz y usar Database :: addConnectionInfo() para hacer la conexión de la base de datos. – sillygwailo
'$ phpbb = Base de datos :: getConnection ($ target = 'default', key = 'phpbb');' este es un error que veo de vez en cuando y no sé cómo pueden las personas llegar a ese código . Lo que quería era '$ phpbb = Database :: getConnection ('default', 'phpbb');' la única razón por la que su código funcionaba era que la expresión '$ target = 'default'' evaluaba' default' pero la variable ' $ target' en el alcance * caller * cambia a ''default'' que probablemente no está indended. – chx
@chx De acuerdo - Respuesta actualizada :) – thtas