Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Praca na 2 bazach
Forum PHP.pl > Forum > Przedszkole
Lirdoner
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ć
blade-mrn
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.
Lirdoner
Połączenie jest jedno tylko później w php przy mysql_select_db() jest problem
Mephistofeles
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 smile.gif.
Lirdoner
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?
PanGuzol
Skoro i tak są na jednym serwerze to Ci to większej różnicy nie robi.
tehaha
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
kulczycki
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.
thek
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 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.
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.