![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 5.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem. Do dyspozycji mam 2 bazy danych na jednym serwerze, i potrzebuję uzyskać dostęp do danych z obu baz z poziomu jednego skryptu.
Ten temat był już poruszany w podobnym wątku. Tam problem został rozwiązany - u mnie nie działa. Co robię źle? Połączenie jest uzyskiwane w następujący sposób. Jeden includowany plik conn.php:
Oraz drugi includowany plik conn2.php:
I używam metody z wcześniej wrzuconego wątku:
I niestety - nie działa... ![]() Wywala błąd: SELECT command denied to user 'nazwa_uzytkownika_z_pierwszego_polaczenia'@'******.netart.pl' for table 'firmy' Proszę, pomóżcie, naprawdę nie wiem jak sobie z tym poradzić... Z góry dzięki ![]() Ten post edytował cezet 20.12.2007, 15:12:02 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 155 Pomógł: 9 Dołączył: 26.01.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
powinno chodzić. ewentualnie możesz sobie połączyć dane wewnątrz php. Rozwiązanie powolne w działaniu ale zawsze jakieś rozwiązanie. Jest jeszcze jedna opcja. Zadzwonić do netart i zapytać konsultatna. Ale tylko jak ci zostało z 60 darmowych minut na telefonie.
Pozdro -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 5.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, problem w tym, że nie mogę połączyć danych wewnątrz skryptu.. Jeśli już pobiorę dane z pierwszego połączenia - z pierwszej bazy, to wykrzacza się na próbie pobrania danych z drugiej bazy w tym samym skrypcie (dziwne, żeskrypt próbuje użyć w drugim połączeniu danych logowania z pierwszej bazy - nie wiem czy za bardzo nie namieszałem). Może jakieś inne propozycje??
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Serwery najczesciej nadaja ograniczenia uzytkownikom co do dostepu do baz danych. Nie mozna np. z poziomu zwyklego SQL'a tworzyc baz (trzeba korzystac z cPanelu, DirectAdmina). Takie same ograniczenia dotycza poslugiwania sie bazami danych. Nie wiem czy na tym serwerze sa tez takie ograniczenia, ale po bledzie pewnie tak. Jak chcesz sprawdzic czy dobrze dziala, to zainstaluj na localhost jakis serwer (np. AppServ) i wtedy zobacz czy skrypt dziala, bo user ma pelne prawa do baz.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 300 Pomógł: 32 Dołączył: 31.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jak rozumiem chcesz być podłaczony do obu baz jednocześnie i wykonywać na nich operacje. Zgaduje - ze skoro przy mysql_select_db nie przekazujesz $link jako ostatniego parametru to i przy mysql_query o tym nie pamietasz - to skąd baza ma php ma wiedzieć do której bazy chcesz wysłać zapytanie?
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
a pokaż może jak potem w kodzie php korzystasz z obu połaczeń? bo coś mi się wydaje, że nawiązujesz dwa połączenia, ale poźniej korzystasz tylko z jednego...
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 5.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Szczerze mówiąc - fakt, nie pamiętam, bo nawet o tym nie słyszałem. Do tej pory pracowałem tylko na jednej bazie jednocześnie, i było wszystko ok. Co do użycia; oto zapytanie które ma pobrać dane z bazy pierwszej (gdy - teoretycznie nawiązane są połączenia z obiema bazami):
Ok. A w takim razie w jaki sposób przekazać parametr $$link ![]() Czy to będzie coś w rodzaju:
![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Czemu masz $$link a nie $link??
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
$$link - dlatego że ten kod był przygotowany do wielokrotnego includowania, a kolega cezet niepotrzebnie go przerabiał, tego się używa mniej więcej tak:
i tyle. powodzenia. -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 5.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ok. Potestowałem. W każdym miejscu, tam gdzie powinno być - wstawiłem wskaźnik połączenia $$link lub $$link1 w zależności od bazy - której dotyczy. Połączenie zostało nawiązane, jednak problem dalej jest.Po nawiązaniu połączenia z drugą bazą ($$link1) i próbie pobrania danych z bazy pierwszej (query, z parametrem $$link) wywala ten sam błąd. Tylko nie mam pojęcia czemu - mimo podania poprawnego wskaźnika połączenia - próbuje użyć danych logowania do bazy z połączenia $$link1.
Czyli konkretnie: Po nawiązaniu połączenia $$link a następnie $$link1Pada:
gdzie $database zawiera bazę z $$link. Według mnie - teoretycznie powinno być ok. Jednak wywala właśnie przy tym zapytaniu - błąd: SELECT command denied to user 'uzytkownik_z_polaczenia_$$link1'@'acr93.rev.netart.pl' for table 'firmy' Kurcze, już mi nerwy siadają, niby proste zadanie, a nie radzę sobie... |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
pokaż DOKŁADNIE JAK inicjujesz te bazy, jak ustawiasz wszystkie zmienne potrzebne do loginu i jak includujesz te pliki - gdzieś tam masz błąd - jak nie pokażesz tego kodu - nikt ci nie pomoże...
wklej tu kod który testujesz a nie jakieś przykładówki... -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 5.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
nevt juz jest ok. Nie przeczytałem Twojego poprzedniego postu, zanim puściłem swojego.
Poszedłem Twoim tokiem, i przyznam szczerze... Sam nie wiedzialem czemu jest $$link, do czego służy i jak się używa. Ale rzeczywiście - jesteś genialny ![]() ![]() Dzieki Ci wielkie, przede mną nowe perspektywy ![]() ![]() Dzieki wszystkim za pomoc. Pozdrawiam ![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 16.01.2008 Skąd: Pszczyna Ostrzeżenie: (0%) ![]() ![]() |
$link - dlatego że ten kod był przygotowany do wielokrotnego includowania, a kolega cezet niepotrzebnie go przerabiał, tego się używa mniej więcej tak:
i tyle. powodzenia. Przepraszam za odkopywanie starego tematu, ale nie chciałem zakładać nowego ![]() Mam takie pytanie w sprawie kodu nevta... Skierowane do niego, ale może ktoś inny go wyręczy. Nie popełniłeś może w nim błędu? Gdy się na nim wzorowałem, skrypt nie chciał pobierać danych z bazy... Dopiero po zmianie na:
...wszystko działało prawidłowo. Chciałbym wiedzieć, czy mój tok rozumowanie jest poprawny, ponieważ mogę coś robić nie tak, a nie chcę mieć dziurawego kodu ![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
przedstawiona przeze mnie wersja działa, jeżeli nawiązanie połączenia wygląda tak jak w pierwszym poście, czyli przy użyciu podwójnego $$:
natomiast wersja z poprzedniego postu będzie działać jeżeli użyjesz normalnego podstawienia do zmiennej $link (z pojedynczym $):
poczytaj w manualu o konstrukcji zmienne zmienne i zrozumiesz na czym to polega... -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 16.01.2008 Skąd: Pszczyna Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki, nie miałem pojęcia, że coś takiego istnieje
![]() Właśnie się zastanawiałem do czego służą te podwójne $$, ale nie wiedziałem co wpisać w manualu, żeby dokopać się do takich informacji. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:06 |