Was viele nicht wissen: Zugriff auf beliebige MySQL-Datenbanken in WordPress ganz einfach
Mit dem wpdb-Objekt sind wir ja inzwischen schon per Du, da hab ich schon genug Anwendungsbeispiele geliefert. Jetzt setz ich noch eins obendrauf: wir holen uns mal Daten aus einer externen MySQL-Datenbank. Das kann die DB einer anderen WordPress-Instanz sein, muß aber nicht, irgendeine gehostete MySQL-DB tuts auch. Wir brauchen dazu nur den Connect, also ganz das Übliche:
- Datenbankserver
- Datenbankname
- Datenbankuser
- Datenbankpasswort
Und schon kann es losgehen. Ich leg mir die Connect-Daten gern auf Variable, das sieht dann z.B. so aus:
$user = ‚U12345678‘;
$password = ‚meinPasswort‘;
$database = ‚DB12345678‘;
$server = ‚rdbms.strato.de‘;
Der externe Connect mit dem wpdb-Objekt
Voraussetzung ist natürlich, daß vorneweg global $wpdb deklariert wurde. Dann gehts ganz einfach:
$wpdb = new wpdb($user, $password, $database, $server);
Damit legen wir ein neues wpdb-Objekt an, das auf die externe Datenbank zugreift. Jetzt können wir nach Belieben auf die Tabellen in der externen Datenbank zugreifen, zum Beispiel so:
Der SELECT geht wie gehabt
$rows = $wpdb->get_results(„SELECT * FROM beispieltabelle“);
Das dürfte ihnen jetzt aber doch schwer bekannt vorkommen! Mit dem $wpdb->get_results haben wir ja schon die ganze Zeit gearbeitet, der gibt wie üblich ein Array zurück, das das Ergebnis des Select enthält.
Der FOREACH – auch wie gehabt
Auch hier ändert sich gar nichts, man greift über die Feldnamen der externen Tabelle zu und formatiert sich seine Ausgabe nach Wunsch, zum Beispiel so:
foreach ($rows as $obj) :
echo „<h1>“.$obj->feldname_1.“</h1>“;
echo „<h2>“.$obj->feldname_2.“</h2>“;
echo „<p>“.$obj->feldname_3.“</p>“;
endforeach;
Das wars schon! Wenn sie den Connect String haben, können sie aus WordPress heraus auf jede beliebige Datenbank im Web zugreifen und die gewohnten wpdb-Methoden dafür verwenden. Ist immer wieder mal nützlich!