it-swarm.com.de

Ich versuche, zwei Datenbanken mit einer Joomla-Site zu verbinden

Ich habe zwei Joomla-Sites mit unterschiedlicher Datenbank. Und ich möchte alle Daten einer Site für eine andere Site freigeben. Wenn ich beispielsweise einen Benutzer auf einer Website registriere, wird diese auch auf der Datenbank der zweiten Site aktualisiert. Ich habe diesen Code für die Verbindung mit einer externen Datenbank. Aber ich bin neu in Joomla. Ich weiß nicht, wie ich diesen Code implementieren soll.

<?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

Es gibt bereits eine einfache Lösung, um Ihre Ziele zu erreichen.

Wenn Sie die Fabrik-Erweiterung installieren, können Sie in den Administratoreinstellungen der Komponente eine neue Datenbankverbindung hinzufügen. Mit Fabrik können Sie dann Felder und Daten aus verschiedenen Datenbanken in denselben Formularen anzeigen und aktualisieren.

2
William Ellis

EDIT 2:

Ich denke, dies ist nicht die Erklärung, die der Benutzer haben möchte, aber es ist möglich, dass er die Informationen seiner Master-Website mit einem Plug-In-System in die beiden Datenbanken eintragen muss.


Wenn Sie den Code mithilfe von Überschreibungen und benutzerdefinierten Komponenten implementieren möchten, müssen Sie nur zum Beispiel diese einfache Anleitung verwenden, um Informationen aus der anderen Datenbank abzurufen:

https://docs.joomla.org/Selecting_data_using_JDatabase

EDIT:

Insbesondere müssen Sie zwei Objekte erstellen, eines für die lokale Verbindung und eines für die externe Verbindung.

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

Verwenden Sie dieselbe Abfrage, die Sie für die beiden Objekte erstellt haben:

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

PD: Veröffentlichen Sie keine Anmeldeinformationen wie Benutzer und Passwort im Internet.

1
troyKoutei