Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Problem z update set
adam882
post
Post #1





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


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?

Ten post edytował adam882 28.12.2009, 13:24:31
Go to the top of the page
+Quote Post
cim
post
Post #2





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

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


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]

Ten post edytował cim 28.12.2009, 13:49:21


--------------------
errare humanum est
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 Aktualny czas: 20.08.2025 - 04:42