Sprawdzanie w bazie o obecności rekordu

Satania

Użytkownik
Dołączył
Styczeń 14, 2010
Posty
1
Witam! Mam problem.
Mam zmienną $kod i $hash.
Kod = fraza
Hash = Hash MD5 odpowiadający tej frazie.
Chciałbym zrobić żeby dane były przekazywane do bazy(nie jest problemem), ale pod warunkiem gdy nie ma w niej jeszcze hash.
Próbowałem pobierać hash z bazy i je porównyważ, ale mi coś nie wychodziło. Czy ktoś widzi rozwiązanie tego problemu?
Tabela: dane
Pole: hash
 

djmentos

Użytkownik
Dołączył
Maj 1, 2007
Posty
1868
PHP?

Najpierw wysyłasz polecenie:
SELECT * FROM `tabela` WHERE hash = '$hash'
i potem w PHP sprawdzasz tylko czy zostały zwrócone jakies rekordy:
dla mysqli tj. $db->num_rows()
lub mysql_num_rows(), nie wiem jak dla mysql
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
PHP?

Najpierw wysyłasz polecenie:
SELECT * FROM `tabela` WHERE hash = '$hash'
i potem w PHP sprawdzasz tylko czy zostały zwrócone jakies rekordy:
dla mysqli tj. $db->num_rows()
lub mysql_num_rows(), nie wiem jak dla mysql

To złe rozwiązanie, bo baza wysyła zawartość pasujących krotek do skryptu, zaś ten do niczego ich nie używa poza sprawdzeniem, ile ich jest. Gdyby pasujących rekordów mogło być wiele lub rekord zajmowałby dużo miejsca, to słanie tych informacji niepotrzebnie obciążałoby bazę. Lepiej wysłać do skryptu tylko liczbę pasujących rekordów (select count(*) from [...]), choć i to nie było by całkiem OK.
 
Do góry Bottom