Проверьте значение, если есть прописные и строчные буквы - PullRequest
0 голосов
/ 28 августа 2018

Я хочу проверить, существует ли имя пользователя в базе данных, но у меня есть проблема Пример: если у меня есть имя пользователя = jack и другой регистр с именем пользователя = JaCk

Принимает Я хочу проверить полное имя пользователя строчными и прописными буквами и отказаться от таких случаев (jack - Jack - JaCk ....)

$stmtr = $DB_con->prepare("SELECT username FROM users WHERE username=:username");
$stmtr->bindparam(":username", $val['username']);
$stmtr->execute();
$row=$stmtr->fetch(PDO::FETCH_ASSOC);

if($rowr['username']==$val['username']) {
echo "Exists";
}

Ответы [ 3 ]

0 голосов
/ 28 августа 2018
 if( strtolower($row['username'])==strtolower($val['username']) ) { echo "Exists";}

Вы также можете заменить strtolower на strtoupper, который преобразует строку в верхний регистр.

ПРИМЕЧАНИЕ: Что в этом случае strtolower и strtoupper приведут к тому же результату, что и @ user3783243

Также, если вы пытаетесь сравнить оба значения с Case Sensitivity, то есть вы не хотите, чтобы if('JAck'== 'jAck') вернул true , тогда используйте строгое сравнение ===

 if('JAck'== 'jAck') //will return true
 if('JAck'=== 'jAck') //will retrun false
0 голосов
/ 28 августа 2018

Вы можете использовать UPPER_CASE в запросе SQL:

$stmtr = $DB_con->prepare("SELECT username FROM users WHERE UPPER(username)=:username");
$stmtr->bindparam(":username", strtoupper($val['username']));

Но я думаю, что вы должны хранить username в верхнем или нижнем регистре при регистрации пользователя. Это лучше, чем использовать UPPER в SQL

0 голосов
/ 28 августа 2018

Есть опечатка. В строке:

if($rowr['username']==$val['username']) {

должно быть:

if($row['username']==$val['username']) {

Также по умолчанию MySQL выполняет запрос без учета регистра. Обратите внимание на часть _ci в вашей сортировке БД (например, utf8_general_ci), это означает, что регистр не учитывается. Вы должны выполнить дополнительную проверку в PHP, чтобы проверить наличие разных прописных и строчных букв.

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