Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Praca na 2 bazach
Lirdoner
post
Post #1





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

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


Witam, w jaki sposób mogę skierować zapytanie do wybranej bazy w php?
Mam stronę podzieloną na 2 części jedna pobiera dane z jednej bazy a druga z drugiej i teraz nie wiem jak to połączyć
Go to the top of the page
+Quote Post
blade-mrn
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

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


Jednym zapytanie to raczej nie da się tego zrobić. Sądzę że musisz po prostu podłączyć się do obu baz i pracować na nich równolegle. Lub najpierw sczytać co ci potrzeba z jednej bazy, zamknąć połączenie z nią i otworzyć drugie.
Go to the top of the page
+Quote Post
Lirdoner
post
Post #3





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

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


Połączenie jest jedno tylko później w php przy mysql_select_db() jest problem
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #4





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Nie da się pracować na raz na dwóch bazach. Musisz połączyć się 2x do różnych baz.

Edit: Nie sugerować się, wygląda na to, że żyłem w błędzie (IMG:style_emoticons/default/smile.gif) .

Ten post edytował Mephistofeles 29.12.2010, 16:51:01
Go to the top of the page
+Quote Post
Lirdoner
post
Post #5





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

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


No bo problem mam takie, że napisałem proste forum ale właśnie żeby nie obciążać bazy przeniosłem tabele odpowiadajace za forum do nowej, innej bazy i teraz chciałbym jakoś to połączyć
Jeżeli się nie da to co? trzymać wszystko w jednej bazie?
Go to the top of the page
+Quote Post
PanGuzol
post
Post #6





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


Skoro i tak są na jednym serwerze to Ci to większej różnicy nie robi.
Go to the top of the page
+Quote Post
tehaha
post
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


trzymaj w jednej

aczkolwiek, gdybyś bardzo chciał to możesz połączyć się z dwoma i wtedy przy użyciu funkcji http://php.net/manual/en/function.mysql-query.php podajesz drugi parametr
Go to the top of the page
+Quote Post
kulczycki
post
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


Cytat
Nie da się pracować na raz na dwóch bazach. Musisz połączyć się 2x do różnych baz.
.
Nie prawda. Da się wykonać query które odwołuję się do dwóch innych baz (czyt. nie serwerów). Jeśli użytkownik ma dostęp do obu baz wystarczy przed nazwą tabeli dać:
  1. nazwa_bazy.`nazwa_tabeli` AS cos


Nie raz tak robiłem zapytania żeby wykonać pewne statystyki. Mając bazę postaci i osobną bazę kont.

Może też to być spowodowane tym że mam serwer dedykowany i root-em wykonywałem te zapytania.

Cytat
Mam stronę podzieloną na 2 części jedna pobiera dane z jednej bazy a druga z drugiej i teraz nie wiem jak to połączyć

A jeśli Ci chodzi o takie coś. Klasa statyczna która przechowuje obiekty PDO w zmiennej i przy pobieraniu sobie wybierasz. Naraz łączysz się z 2,3,4,5,6 itd. bazami.

Ten post edytował kulczycki 29.12.2010, 14:52:10
Go to the top of the page
+Quote Post
thek
post
Post #9





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




Problem do rozwiązania na kilka sposobów. Najprostszy to podany przez kulczyckiego. Jeśli obie bazy działają pod tym samym userem to pisz zapytania z podanie nazwy bazy przed nazwą tabeli i łącz kropką. Sam nieraz tak robiłem. Działa na bank. Jeśli to ten sam serwer, ale niestety łączy się z użyciem różnych userów to robisz dwa połączenia mysql_connect, gdzie 4 parametr tej funkcji ustawiasz na true (domyślnie jest to false) lub kombinujesz z nazwą hosta. PHP widzi różnicę między adresem IP i nazwą kanoniczną i nawet jeśli to dokładnie to samo, to uznaje to za dwa różne hosty. Taka jedna z głupotek tego języka, o której niewiele się mówi (IMG:style_emoticons/default/winksmiley.jpg) W tych 2 ostatnich wypadkach przy mysql_query podajesz identyfikator jednej z baz jako 2 parametr. Oprócz tego wspomniane PDO, które potrafi także kilka połączeń do baz tworzyć, podobnie jak mysql_query z 4 parametrem na true.
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 - 12:11