![]() |
|
Модераторы: skyboy |
![]()
|
|
| Alex0202 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 11.3.2005 Репутация: нет Всего: нет |
Перед добавлением username'a в db я проверяю если в db уже такой юзернэйм,обычным select * where username='$username'.
Всё работает хорошо до тех пор пока дело недоходит до заглавных букв. Например в базе уже есть юзер "vasya" и если придёт новый юзер и введё "VaSyA" или "vasYa" то система его пропустит !! Как мне сделать чтобы в базе был только один вася ?? Mysql ver 4.1 Это сообщение отредактировал(а) Alex0202 - 16.11.2005, 17:16 |
|||
|
||||
| DemoCode |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 890 Регистрация: 20.10.2005 Где: Россия Репутация: нет Всего: 41 |
например, пиши все имена маленькими буквами strtolower ($username)
и проверяй так: $username = strtolower ($username); $sql = "select * where username='$username'"; Это сообщение отредактировал(а) DemoCode - 16.11.2005, 17:07 -------------------- Жить стало лучше, жить стало веселей © И.В. Сталин |
|||
|
||||
| Alex0202 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 11.3.2005 Репутация: нет Всего: нет |
Это не сработает ж) потомучто в базе уже может быть "Vasya" а я буду искать strtolower("vAsYa") |
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 1 Всего: 22 |
У текстовых типов столбцов есть аттрибут BINARY используемый при сравнении. Если его указать, то Vasya и VASyA не будут равны. Пример использования BINARY:
Добавлено @ 17:24 Еще, вроде бы, возможно регистрозависимое сравнение столбцов, не объявленных как BINARY, но как это делается не помню... См. dev.mysq.com Это сообщение отредактировал(а) Bikutoru - 16.11.2005, 17:27 -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Alex0202 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 11.3.2005 Репутация: нет Всего: нет |
Пасибо за пример, но я это уже знаю и это неподходит (база уже заполнена и несмогу create table) |
||||
|
|||||
| Bikutoru |
|
||||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 1 Всего: 22 |
И что? Можно же изменить определение столбца с сохранением всей информации
-------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
||||
|
|||||
| Alex0202 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 11.3.2005 Репутация: нет Всего: нет |
Буде делать это в последий случай, это несовсем подходит, мне надо чтобы был только один vasya в базе |
||||||
|
|||||||
| DemoCode |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 890 Регистрация: 20.10.2005 Где: Россия Репутация: нет Всего: 41 |
Пройдись по базе и исправь все "Vasya" на strtolower ("Vasya"). -------------------- Жить стало лучше, жить стало веселей © И.В. Сталин |
|||
|
||||
| Alex0202 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 11.3.2005 Репутация: нет Всего: нет |
ноже непойдёт, неуважение какоето имя с маленькой буквы ж(
неужели нет других вариантов?? |
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 1 Всего: 22 |
Тогда я ничего не понимаю. Нельзя ли пояснить?.. -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Alex0202 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 11.3.2005 Репутация: нет Всего: нет |
ну мне надо чтоб в базе был только один Vasya либо VASYA или VaSyA, мне ненадо чтоб в базе был Vasya, VaSyA и VASYA Это сообщение отредактировал(а) Alex0202 - 16.11.2005, 18:04 |
||||
|
|||||
| Bikutoru |
|
||||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 1 Всего: 22 |
Я бы сделал таким образом:
Таким образом юзер может придумывать логин в любом регистре, а уникальный индекс на хеше логина, приведенного к нижнему регистру, не позволит создать Vasya, если уже есть vasya. Соответственно, добавлять пользователей нужно, не забывая о хеше логина:
Это сообщение отредактировал(а) Bikutoru - 16.11.2005, 18:31 -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
||||
|
|||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Я бы просто при попытке регистрации проверял предикатом:
Вернул число<>0 , значит юзер есть. -------------------- Теперь при чем :P |
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 1 Всего: 22 |
Ignat, в твоём варианте индекс использоваться не будет и, следовательно, запрос притормаживать будет при энном числе юзеров... А хеш хорошо лежит, никому не мешает
-------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Обязательно. Тут встает вопрос, важнее скорость или отсутствие "накладных" расходов. MD5 наверняка будет побольше нежели стандартный логин. -------------------- Теперь при чем :P |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |