Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Problem z update set
Forum PHP.pl > Forum > Przedszkole
adam882
Witam

Posiadam takie zapytanie do bazy MySQL. Ma on za zadanie aktywować dodane komentarze:
  1. $q=mysql_query('UPDATE komentarze SET activ=1 WHERE (id='.(int)$_GET['activ'].' AND id_oferty='.(int)$_GET['id'].') LIMIT 1');
  2. if($q){print('Aktywowano komentarz');}else{print('Nie udało się aktywować komentarza!');}

Wszystko jest OK, lecz w przypadku, kiedy podaje nieistniejące parametry GET: activ i ID, to mimo wszystko wyświetla komunikat o aktywowaniu komentarza (TRUE), zamiast FALSE. W jaki sposób zrobić, aby w przypadku podania złych parametrów wyświetlił się komunikat o błędzie?
cim
Witam,

wykonując rzutowanie typu na integer z braku wartości robisz 0, a rekord o takim ID prawdopodobnie jest w tabeli. W tym wypadku usuń '(int)', a najlepiej sprawdz wartość zmiennych przed wklejenim ich do zapytania, mysql_real_escape_string etc (wtedy też możesz zrobić if`a i sprawdzić czy w ogóle mają one jakąś wartość zamiast wysyłać do bazy błędne zapytanie i odbierać od niej błąd).

Pozdrawiam

[dodane]
W pierwszej chwili źle zrozumiałem. Liczbę zmienionych rekordów poprzez INSERT, DELETE, UPDATE możesz sprawdzić funkcją mysql_affected_rows (http://php.net/manual/pl/function.mysql-affected-rows.php). Wtedy sprawdzasz czy liczba zmienionych rekordów jest większa od 0.

Jeszcze raz pozdrawiam
[/dodane]
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.