Задать вопрос
amelihovv
@amelihovv
Фулстек веб разработчик

Нужно ли валидировать длину поля?

Например, ник пользователя в таблице mysql хранится как поле типа varchar. Длина varchar, насколько я помню, 255 байт.
Следует ли мне проверять, что длина ника не более 255 символов (положим что размер каждого символа 1 байт) и выводить пользователю сообщение, что "длина ника не более 255 символов"?
Или не обращать на длину внимание и сохранять поле в базу данных, а при ошибке (кстати, mysql выдаст ошибку, если в поле попробовать записать больше данных, чем можно?) выводить пользователю сообщение, что "не удалось выполнить ваш запрос"?
Если мне следует проверять, то нужно ли это делать вообще для каждого текстового поля? Например, размер поля типа bigtext?
  • Вопрос задан
  • 293 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@ru44ish
Конечно надо делать для пользователя , если будет "Не удалось выполнить ваш запрос" он подумает что сайт нерабочий , а если " разрешена длина ника не более 255 символов" то для него будет это намного понятней!
Ответ написан
Комментировать
@firm
> кстати, mysql выдаст ошибку, если в поле попробовать записать больше данных, чем можно?

Нет, mysql не выдаст ошибку (UPD от JhaoDa: если выключен строгий режим (STRICT_TRANS_TABLES)). Он просто обрежет строку до нужной длины, в вашем случае до 255 символов.

Так что ответ - да, проверку на длину строки нужно делать, иначе просто при превышении 255 символов вы потеряете данные.
Ответ написан
@Argumentus
JS проверяй что пользователь вводит, будет куда красивее обработка ошибок, но и в php я бы тоже проверку сделал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы