Я создал базу данных без определения набора символов, поэтому он по умолчанию был латинским. Теперь мне нужно сделать поиск с учетом регистра, поэтому я использовал команду:
$sql = "SELECT * FROM Users WHERE username = '$value' COLLATE SQL_Latin1_General_CP1_CS_AS";
Проблема в том, что он не возвращает совпадений. На моей веб-странице у меня есть <meta charset="utf-8">
в head
страницы, поэтому я задаюсь вопросом, может ли быть проблема кодировки кодировки. Если я делаю поиск без COLLATE SQL_Latin1_General_CP1_CS_AS
он работает, но он нечувствителен к регистру.
В чем может быть проблема? Должен ли я конвертировать базу данных, чтобы всегда использовать utf-8?
Попробуйте двоичный оператор:
$sql = "SELECT * FROM Users WHERE BINARY username = '$_POST[userName]'";