Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Jak sprawdzuić że połączenie z bazą było?
Forum PHP.pl > Forum > Przedszkole
skleps
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ą?




nospor
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
Maniek1313
Wystarczyło poszukać
Kod
http://forum.php.pl/index.php?showtopic=120007
skleps
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...
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.