Всем привет =) есть таблица users utf8_general_ci пользователь зарегестрировался и появилось поле oleg Далее проходит авторизацию пишу Oleg, oleg, OleG, все проходит Как сделать запрос чувствительный к регистру или до запроса еще что то надо делать?
да там в принципе ничего особенного =) Код (Text): $login = $_POST['login']; $login = trim($login); $login = mysql_real_escape_string($login); $result = mysql_query("SELECT * FROM users WHERE login = '$login' AND password = '$password' AND activation = '1'",$db); Нужно чтоб при выборке $login к примеру Oleg и oleg не совпадало, а она совпадает =(
таблице, либо отдельной колонке можно задавать свой индивидуальный collation, например cp1251_general_ci — здесь "ci" == "case insensitive", а можно cp1251_general_cs - 'case sensitive".
Можно ничего не менять. Попробуйте так: Код (Text): $result = mysql_query("SELECT * FROM users WHERE login = '$login' COLLATE utf8_bin AND password = '$password' AND activation = '1'",$db); Вместо utf8_bin пишите нужную Вам кодировку (кодировку столбца с приставкой _bin).
написала SELECT * FROM users WHERE login = '$login' COLLATE utf8_general_ci AND password = '$password' AND activation = '1'" увы таже проблема проходит Oleg и OleG проходит
Говорят, иногда полезно документацию почитывать Не зная какая кодировка столбца, попробуйте так: $result = mysql_query("SELECT * FROM users WHERE login = CAST('$login' AS BINARY) AND password = '$password' AND activation = '1'",$db);
Здрасте, приехали... Это, например, никто не отменил ещё: http://dev.mysql.com/doc/refman/5.5/en/preface.html