[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регистронезависимая проверка
AlmazDelDiablo
Добрый день.
Имеется такая простейшая проверка:
$login = $db->safe( $login );
$query = $db->query( "SELECT * FROM `wc3_web_players` WHERE `nickname` = '$login'" );
if( $db->num_rows( $query ) > 0 ) {
die('Этот ник уже занят!');
}

В переменную $login, например, записана строка «AlmazDelDiablo». Так вот. Если в базе будет ник almazdeldiablo, то проверка покажет FALSE и пропустить скрипт дальше, создавая строку с тем же значеинием, что уже есть, только с другим регистром букв.
Подскажите, как сделать регистронезависимую проверку? Ибо раньше я с таким не сталкивался и все было как по маслу.



Спустя 50 минут, 33 секунды (1.04.2011 - 14:58) Adil написал(а):
Могу предположить, что кодировка таблицы у тебя стоит: utf8_unicode

поменяй на general

Спустя 9 минут, 40 секунд (1.04.2011 - 15:07) Игорь_Vasinsky написал(а):
а можно просто при проверке, когда из бД вытягиваешь логин - переводить его в нижний регистр, тоже самое делать и с новым и усё.

Спустя 22 минуты, 13 секунд (1.04.2011 - 15:30) Trianon написал(а):
важно не general или unicode, а _cs или _ci
_cs - case sensitive
_ci - case insensitive

Спустя 49 минут, 58 секунд (1.04.2011 - 16:20) AlmazDelDiablo написал(а):
Извините smile.gif Я тупанул и проблема была не в этом, но за разъяснения о том, из-за чего такое бывает — спасибо ) Оказалось, я сглупил и у меня вообще проверка эта не проходила )

Спустя 1 час, 3 минуты, 50 секунд (1.04.2011 - 17:23) AlmazDelDiablo написал(а):
Не хотел новую тему создавать. Просто подскажите. Если мне надо проапдейтить в базе все записи, где одинвково какое-либо свойство (проще кодом: UPDATE `db` SET `race_xp` = '5000' WHERE `player_id` = 7012), но при этом нужной записи в базе может небыть (например, идти запись с race_xp = 1,2,3,4, потом пропуск и `race_xp` = 9), но заполнить ее надо также, как и все остальные — можно обойтсь каким-нибудь хитропопым запросом? Или придется извращаться на уровне ПХП?

Спустя 2 минуты, 2 секунды (1.04.2011 - 17:25) alex12060 написал(а):
Если не УТФ:


$query = $db->query( "SELECT * FROM `wc3_web_players` WHERE `nickname` = '".strlower($login)."'" );


Иначе юзай МБ.

Спустя 9 минут, 43 секунды (1.04.2011 - 17:35) Trianon написал(а):
AlmazDelDiablo
Есть запросы INSERT и REPLACE .
Один из них и нужно использовать.


_____________
Блог | VK | GitHub | Twitch
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.