![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 2 Dołączył: 26.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
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) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 4 Dołączył: 12.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie - w którymś miejscu skrypu nadpisujesz zmienną, w której przechowujesz połączenie mysql_connect.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 2 Dołączył: 26.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 ;/ 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)
Ten post edytował G4rcU 27.02.2012, 23:54:37 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 2 Dołączył: 26.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
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" (IMG:style_emoticons/default/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 ;/ |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:style_emoticons/default/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 ?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 2 Dołączył: 26.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie mówiłem, że nie chcę się nauczyć używania debugera (IMG:style_emoticons/default/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) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:44 |