dlaczego select 'aaa' =0
powrót 1 (TRUE) jeśli mam tabeli jakmysql powrót konwersja ciąg 0
userid | pass
user1 | pas1
jeśli kwerendy:
select from table where userid = 0 and pass =0
daje mi wszystkie wiersze?
dlaczego select 'aaa' =0
powrót 1 (TRUE) jeśli mam tabeli jakmysql powrót konwersja ciąg 0
userid | pass
user1 | pas1
jeśli kwerendy:
select from table where userid = 0 and pass =0
daje mi wszystkie wiersze?
MySQL widzi 'aaa' = 0 i myśli sobie: "I może też konwertować aaa do liczby całkowitej, lub od 0 do łańcucha"
Zgadnij, z którym idzie?
zasadzie to, co się dzieje jest to, że „aaa” jest konwersja do liczby całkowitej, a jak to nie jest liczbą całkowitą, to rzuca na 0.
0 = 0 jest oczywiście prawdą (lub prawdziwe == 1) .
Podejrzewam, że to samo dzieje się z twoją kolumną userid, choć nie znając jej wartości/typu danych, trudno powiedzieć.
bardzo ładnie wyjaśnione –
mnie uprzedził :) –