Ответ 1
измените тип данных на unsigned-zerofill все, что вы используете, float, int, decimal (6,2)... только отредактируйте поле unsigned-zerofill
Мне нужно сохранить номера телефонов, начиная с 0, но всякий раз, когда я пытаюсь сохранить это в таблице MySql, стартовый ZERO удаляется, потому что на самом деле число начинается с нуля.
Как решить эту проблему? Мне нужно изменить тип поля из Integer на другой тип?
измените тип данных на unsigned-zerofill все, что вы используете, float, int, decimal (6,2)... только отредактируйте поле unsigned-zerofill
Номера телефонов на самом деле не являются номерами в том смысле, что они не являются порядковыми. Они просто персонажи - они факт, что они цифры, случайны.
Храните их в varchar и двигайтесь дальше: D
Номера телефонов могут содержать и другие символы для читаемости... regexp для номера телефона выглядит примерно как [0-9+-()*#]+
. Поэтому вам нужно использовать текстовое поле для телефонных номеров, а также некоторую проверку.
Вы можете использовать тип данных как varchar для решения этой проблемы.
Номера телефонов не являются целыми числами, и у вас будут проблемы с попыткой сохранить их как целые числа, вместо этого сохраните их как строки.
Да - числовые поля сохраняют только числовые значения, а не форматирование тех, которые имеют paddin с ведущими нулями. Вы должны либо
измените тип поля с целого на varchar или char (если # цифр ВСЕГДА то же самое).
Сохраните номер как целое, но при необходимости добавьте 0 в свой слой презентации.
Вы можете также обернуть нужный номер с нулевым номером с помощью функции. Я сделал эту функцию, чтобы добавить нулевой вывод, если "строка" меньше 2 цифр (она была использована для добавления нулевых чисел до часов и минут).
function leadZero($num) {
if (strlen($num) < 2) {
return "0" . $num;
} else {
return $num;
}
}
Если вы говорите, номер 2, который вы хотите вывести как 02, вы бы сделали leadZero (2);
Это добавит только ноль, если число меньше двух цифр! Например, leadZero (14); вернет 14