Проверка PHP MYSQL при запросе базы данных - PullRequest
0 голосов
/ 25 сентября 2011

Как проверить регистр строки при запросе базы данных?Например, с этим оператором:

mysql_query("SELECT id FROM members WHERE username = '$username'");

Значение в базе данных - «Тест».Пользователь может, однако, ввести «тест», и он все равно будет работать.Как я могу проверить точный случай?Я пробовал === и ==, но, видимо, они не работают в SQL.

Ответы [ 3 ]

3 голосов
/ 25 сентября 2011

Ваше сопоставление должно быть чувствительным к регистру.

Измените параметры сортировки столбца имени пользователя на регистр. Например, если вы используете латинские символы только в столбце имени пользователя, измените его на latin1_general_cs или latin7_general_cs

ALTER TABLE `members` CHANGE `username` `username` VARCHAR( 500 ) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL 

или

ALTER TABLE `members` CHANGE `username` `username` VARCHAR( 500 ) CHARACTER SET latin7 COLLATE latin7_general_cs NOT NULL 
0 голосов
/ 25 сентября 2011

Используйте оператор ==, чтобы проверить значение базы данных, например:

$row=mysql_query("SELECT id FROM members WHERE username = '$username'");
while($rowData=mysql_fetch_assoc($row)) {/* fetch the value */
  if($rowData['value']=='test') {
    echo "yes value is correct";/* code for statement */
  }
}
0 голосов
/ 25 сентября 2011

Какой SQL-сервер вы используете?Учитывая, что вы используете PHP, я собираюсь предположить, что это MySQL и отправит вам здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...