Może to ma jakies znaczenie ze tabela jest typu INNODB?
Cienki1980
29.08.2007, 19:52:22
To teraz zaglądamy do manuala i czytamy co zwraca funkcja mysql_query
I wszystko powinno być jasne.
cornholio666
29.08.2007, 19:59:55
Cytat
mysql_query() zwraca identyfikator wyniku (lub FALSE w przypadku niepowodzenia)
1. Czyli zwrociło mi indentyfikator 1, co to znaczy? 2. Dlaczego nie wywala błędu skoro wiadomo że id nie może byc 0 ?
Cienki1980
29.08.2007, 20:07:29
Ad1. Identyfikator połączenia to identyfikator połączenia .... nawet nie wiem jak to wytłumaczyć .... numer linii na autobusie/tramwaju ... patrząc na niego wiesz gdzie dojedziesz ... podobnie potraktuj identyfikator połączenia
Ad2. Zapytanie sprawdza warunek, nie znajduje żadnych rezultatów więc zwraca pusty zestaw ... tak samo jakbyś napisał w pytaniu where id=99999 ... jak nie będziesz miał takiego rekordu to zwróci Ci pusty zestaw.
cornholio666
29.08.2007, 20:11:37
Identyfikator połączenia - wiem co to jest, nie wiedzialem ze to jest to samo co identyfikator wyniku.
Czyli najlepszym rozwizaniem bedzie dodatkowe zapytanie które sprawdzi czy takie ID istnieje ?
Cienki1980
29.08.2007, 20:34:04
Ale po co
Przecież mysql_query w przypadku zapytania SELECT zwraca Ci identyfikator połączenia a nie wynik .... wykonaj mysql_query a potem mysql_fetch_* żeby sprawdzić czy rekord istnieje.
reversend
29.08.2007, 21:43:00
albo mysqli_num_rows($result) - funkcja zwraca liczbę wierszy więc w tym przypadku bedzie 0
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.