Я должен сохранить номера телефона, запускающиеся с 0, но каждый раз, когда я пытаюсь сохранить это в таблице MySql, начальный нуль удален, потому что никакое число не запускается с Нуля на самом деле.
Как решить эту проблему? Я должен изменить тип поля от Целого числа до другого типа?
Телефонные номера на самом деле не являются числами в том смысле, что они не являются порядковыми. Это просто символы - тот факт, что они являются номерами, случаен.
Храните их в varchar и двигайтесь дальше :D
Для решения этой проблемы можно использовать тип данных varchar.
Номера телефонов могут содержать и другие символы для удобства чтения... regexp для номера телефона выглядит примерно так [0-9+-()*#]+
. Поэтому вам нужно использовать текстовое поле для телефонных номеров, а также некоторую валидацию.
Да - числовые поля хранят только числовые значения, а не их форматирование (которым является paddin с ведущими нулями). Вам следует либо
изменить тип поля с integer на varchar или char (если количество цифр ВСЕГДА одинаково).
Хранить число как целое число, НО добавлять 0 в слое представления по мере необходимости.
Номера телефонов не являются целыми числами, и вы столкнетесь с проблемами только при попытке сохранить их как целые числа, вместо этого сохраните их как строки.