Dziś krótka porada. WordPress domyślnie potrafi łączyć się tylko z jedną bazą danych i przeważnie jest to baza na tym samym serwerze. Co jednak zrobić jeśli chcemy korzystać z dwóch baz?
Załóżmy, że mamy zainstalowanego WordPressa, który korzysta z bazy na tym samym hostingu. Wszystko mamy ładnie skonfigurowane w wp-config.php i działa jak należy. Któregoś dnia jednak zgłasza się do nas partner z ofertą: „Damy Wam dostęp do naszej bazy danych MySQL z której będziecie pobierać dane o naszych produktach i wyświetlać u siebie na stronie.”
wpdb i łączenie ze zdalną bazą
Czy będziemy musieli sami napisać odpowiednie funkcje w PHP do łączenia z dodatkową bazą? A może instalować jakąś dodatkową klasę do takich rzeczy? Brzmi jak powielenie już wbudowanej i dobrze nam znanej klasy wpdb.
Okazuje się, że jak najbardziej można w tym celu wykorzystać właśnie wpdb. Wszystko co musimy zrobić to zainicjować jej kolejną instancję podając parametry połączenia:
$zdalna = new wpdb( $user, $pass, $db, $host );
I teraz aby wykonać jakieś polecenie na zdalnym MySQL wystarczy wywołać jedną z wielu metod tej klasy, na przykład:
$wynik = $zdalna->query("SELECT * FROM produkty");
I to wszystko.
O czym należy pamiętać dodatkowo?
Oczywiście zakładamy, że zdalny serwer MySQL pozwala na połączenie z naszej strony. Jeśli nie – nic na to nie poradzimy i połączenie się nie uda.
Warto też rozważyć zapamiętywanie odpowiedzi zdalnej bazy przynajmniej na kilka minut by nie generować niepotrzebnego ruchu.
Comments