Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Połączenie z 2 osobnych serwerów
Forum PHP.pl > Forum > Przedszkole
Mefiuu
Witam. Mam pytanie. Czy jest to w ogóle możliwe i jak można połączyć się z 1 skryptu do bazy danych na innym serwerze? Sytuacja maluje się tak:
Mam serwer A i serwer B. Na jednym jest jedna strona A, na drugim druga B. Chciałbym aby ze strony A można było się połączyć z bazą danych B i pobrać zawarte tam dane. Zwykłe wywołanie mysql_error sypie błędami, a dość mi to potrzebne. Jak to można załatwić?
rafalp
Możesz tworzyć ile chcesz połączeń:

  1. $connection1 = @mysql_connect('localhost', 'uzytkownik', 'haslo');
  2. $connection2 = @mysql_connect('http://serwer_bazy_danych.pl', 'uzytkownik2', 'haslo2');


Problelem może być to, że niektóre hostingi nie pozwalają na łączenie się zdalne z innego serwera. Tzn że akceptują tylko połączenia localhost z bazą danych.

Musisz zdobyć poprawne adresy tych baz danych z którymi zamierzasz się łączyć. Najlepiej zapytać administratora, jeśli korzystasz z dzielonych prostych hostingów.
Mefiuu
korzystam w obydwu przypadkach z darmowych hostingów więc jak mniemam nie da się tego zdalnie połączyć? Kurcze, trochę niedobrze...
Fifi209
Więc nie da się zdalnie połączyć... ;] Takie są darmowe hostingi zwykle. ;]

Napisz sobie jakieś webapi jeżeli nie ma zbyt dużo tych danych.
nekomata
może sprawdź czy mysqli_connect zamiast mysql_connect , się połączyć powinno bez problemu bo przy każdym mysqli_query podajesz link do bazy, a przy mysql_query wybiera połączoną bazę , bądź co bądź mysqli jest zalecane w każdym przypadku (nowsze szybsze itd.)
Fifi209
Cytat(nekomata @ 3.04.2011, 22:41:03 ) *
a przy mysql_query wybiera połączoną bazę

Najpierw zajrzyj do manuala i poczytaj o parametrach jakie przyjmuje ta funkcja
Cytat(nekomata @ 3.04.2011, 22:41:03 ) *
, bądź co bądź mysqli jest zalecane w każdym przypadku (nowsze szybsze itd.)

W każdym przypadku? A ja np. wolę PDO, też jest nowsze, dodatkowo ma filtrację odpowiednią.
Co do szybkości proszę poprzeć.
Mefiuu
tak tylko, że to są rozwiązania obiektowe, czego ja wolę na razie nie dotykać bo nie ogarniałem jeszcze tego tematu i prawdę mówiąc obawiam się obiektówki wink.gif

Cytat
Napisz sobie jakieś webapi jeżeli nie ma zbyt dużo tych danych.


możesz sprecyzować? Nie bardzo rozumiem. A danych jest na jeden warunek "SELECT * FROM tabela ORDER BY date DESC"; ot i co.
Fifi209
Skrypt dzięki któremu będziesz mógł pobrać dane z zewnętrznego serwera.

Skrypt z serwera A otwiera skrypt z serwera B i odbiera odpowiedź (dane).

Dane mogą być w postaci zserializowanej tablicy patrz serialize
ew. var_export
ew. jako generowany dynamicznie plik .xml
ew. w postaci JSON patrz json_encode
nekomata
Cytat(fifi209 @ 3.04.2011, 21:44:09 ) *
Najpierw zajrzyj do manuala i poczytaj o parametrach jakie przyjmuje ta funkcja

W każdym przypadku? A ja np. wolę PDO, też jest nowsze, dodatkowo ma filtrację odpowiednią.
Co do szybkości proszę poprzeć.

Miałem na myśli wyższość mysqli_ nad mysql_ .
mysqli obiektowe?
  1. $dbc = mysqli_connect('host','user','haslo','baza','port') or die('cannot connect to mysql');
  2. // a query robisz tak
  3. mysqli_query($dbc,'Select * from porno where 1=1'); // biggrin.gif
  4. // a zwykłym mysql
  5. mysql_query('Select * from porno where 1=1');
  6. //Jakoś strasznej różnicy nie widzę pomiędzy mysql_ a mysqli_ , poza wyborem połączenia, oczywiście przed mysql musisz się połączyć.
Mefiuu
hmmm... no możliwe, będę to musiał sprawdzić. a teraz tak mi wpadło do głowy (nie sprawdzałem) czy takie coś by wypaliło :

przy dodawaniu czegoś tam do bazy na serwerze A zapisywać odpowiednie dane do pliku tekstowego, a na serwerze B odpalać regularnie (np. co godzinę od 14-24) skrypt z wykorzystaniem funkcji ftp_ i pobierać sobie ten plik z ftp serwera B? Może głupio myślę, ale to o czy piszesz fifi209 to dla mnie na razie magia i szukam zamienników na 'mój rozum' smile.gif
nekomata
Równie dobrze mógłbyś sprawdzić czy twój serwer obsługuję cUrl'a i na drugim serwerze za pomocą odpowiedniego GET obsługiwać mysql i zwracać, działać by to mogło powoli ale problem byłby rozwiązany całkowicie.
Fifi209
nekopata a po co w to mieszać curl? Zwykły file_get_contents wystarczy + to co pisałem wyżej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.