Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]3 serwery 4 bazy 1 skrypt
Kużdo
post 3.09.2010, 19:46:46
Post #1





Grupa: Zarejestrowani
Postów: 181
Pomógł: 14
Dołączył: 4.06.2008

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


Witam,

Mam dość poważny problem... Szukałem rozwiązania i znalazłem kilka tematów, ale jakoś nic nie działa nadal...

Otóż mam plik config.php z zawartością:
  1. $db1_host = "adres";
  2. $db1_user = "login";
  3. $db1_pass = "password";
  4. $db1_name = "baza";
  5.  
  6. $link1 = @mysql_connect($db1_host, $db1_user, $db1_pass)
  7. or die("Link1 - Access Denied.");
  8. $q1 = @mysql_query("SET NAMES 'utf8'", $link1);
  9. $q1 = @mysql_select_db($db1_name, $link1)
  10. or die("Link1 - Wrong MySQL database.");


Ten fragment powtarza się w tym pliku 4 razy z tym, że inaczej są numerowane... Potem są link2 i q2, link3 i q3, link4 i q4... Są trzy maszyny, na każdej jest baza. Na jednej z maszyn są dwie bazy i mam z nimi problem... Mam niby zapytania olinkowane, w skrypcie tak samo używam drugiego parametru $linkX za id połączenia, ale skrypt i tak pobiera sobie nie tą bazę co trzeba....

Przykładowo wygląda to tak:
  1. $link1 = 1.1.1.1:baza1;
  2. $link2 = 1.1.1.1:baza2;
  3. $link3 = 2.2.2.2:baza1;
  4. $link4 = 3.3.3.3:baza1;


Zapytania wyglądają tak:
  1. $query1 = ("SELECT `id`, `name` FROM `accounts` WHERE `id` = '".$id."'", $link1);
  2. $query2 = ("SELECT `id`, `ble` FROM `bleble` WHERE `id` = '".$id."'", $link2);
  3. ...

I wyskakuje mi błąd z zapytaniem $query1, bo nie może znaleźć tabeli accounts w bazie 'baza2'. Jak to pogodzić? :/

Jeśli komuś przeszkadza sposób w jaki to opisałem to sorki, chciałem to uprościć do maksimum, żeby nie zajmować miejsca...

Pozdrawiam.

//EDIT: Sprawdziłem coś i nawet w plikach gdzie nie używam $link2 skrypt wariuje bo bierze połączenie $link2 za $link1... Nie rozumiem już tego, bo są to osobne połączenia, osobno oznaczone. Przy wybieraniu bazy jest podany id połączenia czyli $q1 = @mysql_select_db($db1_name, $link1) i $q2 = @mysql_select_db($db2_name, $link2)...

Pomocy?

-------------------------------------
3 Wrzesień 2010 20:47
Sorry for double post...

Nikt nie zna odpowiedzi? Poproszę chociaż o jakieś wskazówki czy coś ;P Na razie to rozwiązałem poprzez wykonywanie zapytania mysql_select_db przed danym zapytaniem, ale jest to nie estetyczne i zajmuje miejsce, a na pewno jest inne wyjście... No i dlaczego linki się wiążą ze sobą? Przecież dla każdego jest nadany inny identyfikator, a przy mysql_select_db podaję drugi dodatkowy argument - ID połączenia...

Pozdrawiam.

Ten post edytował kuzdo 3.09.2010, 19:47:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
thek
post 3.09.2010, 20:15:30
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Rozwiązania są 2. Proste lub wymagające nieco wiedzy.

Proste? 4 parametr mysql_connect na true, co utworzy nowe połączenie dla tego samego serwera mysql

Wymagające nieco wiedzy? Serwer rozróżnia połączenia z hostem kanonicznym i IP. Dla niego połączenia na "localhost" i "127.0.0.1" to dwa różne winksmiley.jpg Jeśli znasz zarówno adres hosta jako IP i jako nazwę kanoniczną, to możesz utworzyć 2 różne połączenia dla niego.

Jaki z tego wniosek? Rozwiązanie proste jest nie tylko proste, ale i wygodniejsze w użyciu bo pozwala na ponad 2 połączenia dla jednego serwera bazy danych w banalny sposób smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Kużdo
post 4.09.2010, 10:52:50
Post #3





Grupa: Zarejestrowani
Postów: 181
Pomógł: 14
Dołączył: 4.06.2008

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


I znów muszę Ci podziękować winksmiley.jpg

To jest naprawdę banalne rozwiązanie, dlaczego w innych tematach o tym nie pisali? haha.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 14:16