Как я могу вставить номер в базу данных, поскольку ошибка выходит за пределы допустимого диапазона?

Пытаюсь ввести номер мобильного. Но номер не берет. Что я могу сделать??

mysql>create table mob(MobNo int(30));
mysql>insert into mob1 values(9876543211);

Выдает ошибку:

ERROR 1264 (22003): Out of range value for column 'MobNo' at row 1

Спасибо..

Сохраните его как varchar, почему int ??

Alon Eitan 20.12.2020 18:40

@AlonEital Если кто-то введет символ, отличный от числа, это выдаст ошибку.

MRUNAL MUNOT 20.12.2020 18:45

Что вы думаете, если мы думаем, что в целях безопасности мы можем взять строку или целое число. Поскольку я новичок, у меня больше нет идей?

MRUNAL MUNOT 20.12.2020 18:48

Вам необходимо проверить ввод и удалить все нечисловые символы или отобразить пользователю ошибку о недопустимом вводе. Вы не должны использовать тип поля в базе данных в качестве решения

Alon Eitan 20.12.2020 18:52

@AlonEitan, я не понял, как удалить

MRUNAL MUNOT 20.12.2020 19:31
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
5
273
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В MySQL unsinged int может содержать значения до 4294967295; твой примерно в два раза больше, так что я не могу влезть.

Используйте bigint:

create table mob(MobNo bigint);

У вас может сложиться впечатление, что 30 в int(30) дает вам 30-значную точность. На самом деле это не так; число в круглых скобках — это ширина экрана: if относится к представлению числа и не изменяет диапазон значений, которые он может хранить. Это как-то сложно, и этот синтаксис теперь планируется к устареванию:

Начиная с MySQL 8.0.17, атрибут ширины отображения устарел для целочисленных типов данных; вы должны ожидать, что его поддержка будет удалена в будущей версии MySQL.

Bigint не допустит 30 цифр; используйте decimal(30,0). Вероятно, они тоже хотят неподписанных

ysth 20.12.2020 20:15

Другие вопросы по теме