![]() |
![]() |
![]()
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ą? |
|
|
![]() |
![]()
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 |
|
|
![]()
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
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 9 Dołączył: 3.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
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... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:50 |