Paź
25
2011

Łączenie z bazą na innym serwerze

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.

Powiązane wpisy

O autorze: Konrad Karpieszuk

Jak każdy chyba tutaj zacząłem po prostu od blogowania. WordPress jednak tak mnie zafascynował, że szybko zabrałem się za tworzenie stron na nim opartych. Później przyszedł czas na pisanie poradników z nim związanych, zdarzyła się nawet książka. Współorganizowałem pierwszy polski WordCamp. Opiekuję się serwisem WPzlecenia.pl, a teraz także tym podserwisem, na którym właśnie jesteście: dev.WPzlecenia. Wszystkim życzę jak najwięcej wyniesionej WIEDZY odnośnie WordPressa. Zaparzcie kawę, usiądźcie wygodnie i - do lektury! :)

Obecnie jestem pracownikiem firmy tworzącej wtyczkę WPML (pozwala tworzyć wielojęzykowe strony), gdzie odpowiadam za jej rozwój. Jestem także autorem bardzo popularnej wtyczki sklepowej TradeMatik

5 komentarzy + Dodaj komentarz

  • Jak zwykle przydatna ciekawostka :) Oj, drogi Konradzie, wróżę świetlaną przyszłość temu blogowi :)

  • 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.

Uwaga, leci reklama:

Firefox jest znów szybki!

Gdzie nas czytać?

Autorzy »
Komentujący »
#wpzlecenia »