Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Jak sprawdzuić że połączenie z bazą było?
skleps
post 6.12.2012, 13:02:44
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

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


jest sobie baza danych, która ma m.in. pole z obrazkiem produktu. Obrazek produktu jest jako plik jpg w odpowiednim katalogu.
Okazało się, że tenże katalog puchnie jak diabli (usunięcie produktu z bazy nie kasuje pliku obrazka) więc wypada go odchudzić.
Na pierwszy rzut oka algorytm prosty jak konstrukcja cepa bojowego:
1. zaczytać do kolei nazwy obazków z katalogu
2. zapytać bazy o rekord, któy w polu z obazkiem na daną nazwę obrazka:
Kod
SELECT id FROM tabela WHERE obrazek LIKE '$plikzobrazkiem,.jpg%'

3. jeśli baza zwróci zero rekordów, to plik z obrazkiem usunąć (na szczęście nie usuwamy tylko przenosimy do katalogu pomocnicznego):
Kod
if (mysql_num_rows($q1)  < 1 ) {
  PrzeniesPlikObrazka
}


Wszystko jest cacy, tylko gdy skrypt straci połączenie z bazą z jakiegoś pwodu (np. zbyt duża liczba zapytań do bazy), to nagle katalog z obrazkami robi się pust,
bo baza nic nie zwróciła.
Wyłapałem, ze problem leży w składni:
Kod
if (mysql_num_rows($q1)  < 1 )

i przerobiłem na
Kod
if (mysql_num_rows($q1)  == 0 )


tylko teraz nie wiem, co zwóci funkcja mysql_num_rows() gdy połączenie z bazą zostanie zerwane.

Jak można upewnić się, ze zero zwrócone przez funkcję mysql_num_rows() to na pewno zero, które zwróćiła baza, a nie cos co się urwało z kosmosu z racji zerwania połączenia z bazą?




Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post 6.12.2012, 13:06:39
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mysql_query() zwraca ci FALSE, gdy baza zwróci błąd. Sprawdzaj najpierw to... A na przyszłośc czytaj manuala, bo tam masz to opisane


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Maniek1313
post 6.12.2012, 13:08:45
Post #3





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


Wystarczyło poszukać
Kod
http://forum.php.pl/index.php?showtopic=120007
Go to the top of the page
+Quote Post
skleps
post 6.12.2012, 13:18:08
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

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


Cytat(nospor @ 6.12.2012, 13:06:39 ) *
mysql_query() zwraca ci FALSE, gdy baza zwróci błąd. Sprawdzaj najpierw to... A na przyszłośc czytaj manuala, bo tam masz to opisane


Dzięki, znalazłem w sieci:
The number of rows in a result set on success or FALSE on failure.

Na swoje usprawiedliwienie mam tylko to, że na co dzień używam "podręcznego" manula w postaci pliku chm, a tam akurat tego nie było napisane...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:50