Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Połączenie z 2 osobnych serwerów
Mefiuu
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
rafalp
post
Post #2





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Mefiuu
post
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


korzystam w obydwu przypadkach z darmowych hostingów więc jak mniemam nie da się tego zdalnie połączyć? Kurcze, trochę niedobrze...
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nekomata
post
Post #5





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


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.)
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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

Ten post edytował fifi209 3.04.2011, 21:47:18
Go to the top of the page
+Quote Post
Mefiuu
post
Post #7





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nekomata
post
Post #9





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


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'); // (IMG:style_emoticons/default/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ć.
Go to the top of the page
+Quote Post
Mefiuu
post
Post #10





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


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' (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nekomata
post
Post #11





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


nekopata a po co w to mieszać curl? Zwykły file_get_contents wystarczy + to co pisałem wyżej.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:55