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.
Komentarze
5 odpowiedzi na „Łączenie z bazą na innym serwerze”
Jak zwykle przydatna ciekawostka :) Oj, drogi Konradzie, wróżę świetlaną przyszłość temu blogowi :)
dzięki :) nie ukrywam, że natchnieniem do szybkiego wpisu było pytanie zadane na gl http://www.goldenline.pl/forum/2634660/dane-pobierane-z-innej-bazy/s/1#46012430 zawsze to jakas forma promocji :)
naprawde nadal nikt nie chce wspolpisać ze mną na tym 'blogu o swietlanej przyszlosci’? ;)
Samo użycie tutaj wpdb nie jest niczym odkrywczym – wszystkie metody łączenia z MySQLem umożliwiają połączenie z hostem zdalnym. Napisz dodatkowo, jakie są zalety użycia wpdb – wtedy wpis nabierze wartości.
Pisać… hm.. Dlaczegóż by nie? Bardzo chętnie. Tylko znaleźć czas! Na swoim blogu nie mam czasu na aktualizacje (powinienem napisać raczej „blogach”), ale podejmuję wyzwanie. Kupiłem ostatnio tablet (niby nic wielkiego, a jednak dla mnie nowość) – może współpraca wp/tablet? Proszę o kontakt.
hej (odpowiedz tak pozno bo nie wiem czemu ale koment dlugo zalegal w oczekiwaniu na moderacje).
zalety wpdb? przede wszystkim fakt, ze kazdy kto programuje z wykorzystaniem wordpress doskonale zna te klase. wykorzystanie innej najczesciej oznaczaloby spedzenie kilku chwil na nauke czegos nowego. i co wiecej pojawia sie problem z bezpieczenstwem tej samej natury co ostatnio z timthumb (gdy wykorzystasz zewnetrzna biblioteke sam musisz dbac o jej aktualizacje; jesli pojawi sie luka bezp w wpdb, zespol wordpressa sam to naprawi i udostepni Ci w ramach standardowej aktualizacji)
odnosnie artykulu o tabletach: bardzo chetnie :)
Nawet jak nie ma opcji połączenia się do jakiejś zewnętrznej bazy, to z reguły w panelu dostawcy serwera jest możliwość nadania pozwolenia naszemu WordPressowi na połączenie w ramach allow hostów. Jak nie znamy nazwy hosta, to będzie ona podana w błędzie wygenerowanym przez PHP. Tak przynajmniej jest w przypadku połączenia w czystym PHP.