it-swarm-es.com

Estoy tratando de conectar dos bases de datos con un sitio de Joomla

Tengo dos sitios de Joomla con una base de datos diferente. Y quiero compartir todos los datos de un sitio a otro sitio. Por ejemplo, cuando registro un usuario en un sitio web, también se actualiza en la base de datos del segundo sitio. Tengo este código para conectar una base de datos externa. Pero soy nuevo en Joomla, así que no sé cómo implementar este código.

<?php
$db = JFactory::getDbo();
?>

<?php
$option = array(); //prevent problems

$option['driver']   = 'mysql';            // Database driver name
$option['Host']     = 'db.myhost.com';    // Database Host name
$option['user']     = 'fredbloggs';       // User for database authentication
$option['password'] = 's9(39s£h[%dkFd';   // Password for database authentication
$option['database'] = 'bigdatabase';      // Database name
$option['prefix']   = 'abc_';             // Database prefix (may be empty)

$db = JDatabaseDriver::getInstance( $option );
?> 
2
Sanjay Yadav

Ya existe una solución simple para lograr sus objetivos.

Si instala extensión Fabrik , puede agregar una nueva conexión de base de datos dentro de la configuración de administración del componente. Con Fabrik, puede visualizar y actualizar campos y datos de diferentes bases de datos dentro de los mismos formularios.

2
William Ellis

EDITAR 2:

Creo que esta no es la explicación que desea el usuario, pero es posible que necesite completar la información de su sitio web maestro con un sistema de complemento en las dos bases de datos.


Si va a implementar el código utilizando anulaciones y componentes personalizados, solo tiene que usar, por ejemplo, esta guía simple para obtener información de la otra base de datos:

https://docs.joomla.org/Selecting_data_using_JDatabase

EDITAR:

Más específicamente, debe crear dos objetos, uno para la conexión local y otro para la conexión externa.

$db = JFactory::getDbo();
$extDb = JDatabaseDriver::getInstance( $option );

Y use la misma consulta que crea para los dos objetos:

$query = "UPDATE #__anytable SET column1 = value1";
$db->setQuery($query); $db->execute();
$extDb->setQuery($query); $extDb->execute();

PD: No publique las credenciales como usuario y contraseña en Internet.

1
troyKoutei