Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dziwne problemy z polaczeniem
Forum PHP.pl > Forum > PHP
G4rcU
temat byl pewnie wałkowany setki razy i zapoznałem się juz z jego rozwiązaniami, ale w moim przypadku to nie działa, gdyz i problem nieco inny

otóz, mam taki sobie błąd:
Kod
Warning: mysql_query(): 5 is not a valid MySQL-Link resource


i nie byłoby w tym nic nadzwyczajnego gdyby nie fakt, ze cała strona normalnie funkcjonuje (w kazdym innym miejscu kodu nie ma problemu z dostepem do bazy), tylko w jednym miejscu kodu, przy wykonywaniu jednej czynności ten błąd się pojawia.

Wiem, ze najczęstszym powodem pojawiania się tego błędu, jest próba połączenia z bazą poprzez "localhost" zamiat 127.0.0.1, ale ja mam w konfigu podany właściwy adres serwera baz danych (no i inne części skryptu nie mają problemów z połączeniem)

Po usunięciu z mysql_query() linka do połączenia otrzymuję z kolei błędy:
Kod
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket

Kod
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established


tak jak pisałem, wszędzie indziej to działa, tylko w tym jednym miejscu nie (nawet jeśli zrobię kopiuj/wklej kodu z działającej części)
marins
Wg mnie - w którymś miejscu skrypu nadpisujesz zmienną, w której przechowujesz połączenie mysql_connect.
Uriziel01
Zrób var_dump z zmiennej w której trzymasz uchwyt do połączenia w linii poprzedzającej te problematyczne zapytanie. Pokaż co tam się kryje.
G4rcU
Cytat
Wg mnie - w którymś miejscu skrypu nadpisujesz zmienną, w której przechowujesz połączenie mysql_connect.

przejrzałem dokładnie (tak mi się wydaje) cały skrypt i nie znalazłem miejsca w którym wartość zmiennej połączenia mogłaby być nadpisana ;/


Cytat(Uriziel01 @ 26.02.2012, 18:53:17 ) *
Zrób var_dump z zmiennej w której trzymasz uchwyt do połączenia w linii poprzedzającej te problematyczne zapytanie. Pokaż co tam się kryje.

var_dump pokazuje:
Kod
resource(5) of type (Unknown)
Uriziel01
Jeżeli umiesz posługiwać się xdebugiem (lub tez jakimś innym debuggerem) to załóż sobie 'obserwatora' na tą zmienna i powolutku sobie wykonuj skrypt aż znajdziesz moment w którym zmienia ci sie typ na unknown. Jeżeli nie masz xdebug'a lub nie umiesz go używać to oczywiście pisz tutaj choć google podpowie tutaj zdecydowanie więcej niż my. W taki otosposób w łatwy i przyjemny sposób rozwiążesz swój problem.
G4rcU
Cytat(Uriziel01 @ 28.02.2012, 07:19:34 ) *
Jeżeli umiesz posługiwać się xdebugiem (lub tez jakimś innym debuggerem) to załóż sobie 'obserwatora' na tą zmienna i powolutku sobie wykonuj skrypt aż znajdziesz moment w którym zmienia ci sie typ na unknown. Jeżeli nie masz xdebug'a lub nie umiesz go używać to oczywiście pisz tutaj choć google podpowie tutaj zdecydowanie więcej niż my. W taki otosposób w łatwy i przyjemny sposób rozwiążesz swój problem.

no niestety nigdy nie miałem do czynienia z debugowaniem - moją znajomość php określiłbym w kategorii "ciut więcej jak zielony" wink.gif

co ciekawe, po zmianie mysql_connect na mysql_pconnect problem znika (no ale to chyba wynika ze specyfiki samego pconnect).
No ale nie jest to rozwiązanie problemu a jego ominięcie ;/
Uriziel01
No jeżeli nie chcesz użyć debugera to jedyną droga jaką widzę jest zrobienie sobie mocnej kawy i dopisywanie kolejno var_dump'a z tego uchwytu w kolejnych miejscach w kodzie, zawsze robisz tak że dzielisz wykonywany kod na połowę, wstawiasz tam var_dump, jeżeli wartośc już jest 'popsuta' to znaczy że stało się to przed var_dump'em więc znów w połowie kodu poprzedzającego var_dump wstawiasz kolejny, jeżeli jednak wartość jest jeszcze poprawna to wstawiasz go w dalszej części kodu. I robisz tak aż znajdziesz felerna linię kodu. Poczułem się jak dobre kilka lat temu gdy sam robiłem takie cuda wink.gif Jednak zapewniam Cie że nauka podstawowej obsługi debugera zajmie ci mniej niż sprawdzenie tego wyżej wymienioną metodą, a z pewnością pozostawi więcej na przyszłość. Jakiego środowiska używasz ?
G4rcU
nie mówiłem, że nie chcę się nauczyć używania debugera wink.gif
sytuacja mnie do tego zmusiła, więc trzeba będzie w weekend zrobić sobie więcej kawy i nauczyć się podstaw debugowania

na kompie mam win7 x64, ale projekt siedzi na jakiejś bliżej niesprecyzowanej wersji linuksa (trzymam to na swoim NAS, który ma wbudowany serwer www z php i mysql)
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.