Имеется такая простейшая проверка:
$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
поменяй на 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
_cs - case sensitive
_ci - case insensitive
Спустя 49 минут, 58 секунд (1.04.2011 - 16:20) AlmazDelDiablo написал(а):
Извините
Я тупанул и проблема была не в этом, но за разъяснения о том, из-за чего такое бывает — спасибо ) Оказалось, я сглупил и у меня вообще проверка эта не проходила )

Спустя 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 .
Один из них и нужно использовать.
Есть запросы INSERT и REPLACE .
Один из них и нужно использовать.
_____________
Блог | VK | GitHub | Twitch