为什么零在它的类型整数时不会去数据库?

时间:2013-01-26 02:37:06

标签: php mysql sql

我可以知道为什么当它的类型为整数时它没有向我的数据库插入零。我有一个名为contact的表,并且有一个列可以保持用户的10位数长度移动号码。这个数字通常从0开始。例如。 0713423454,0234324545等。

在我的表中,我创建了这样的列..

mobile INT(10) NOT NULL, 

在php中我验证它是这样的......

// Check for a mobile number:
if ( !empty($_POST['mobile'])) {
    $number = $_POST['mobile'];     
    if (preg_match('/(0[0-9]{9})/', $number)) {
        $mobile = mysqli_real_escape_string ( $dbc, $number);
    } else {
        $reg_errors['mobile'] = 'You are NOT entered valid Mobile number!';
    }
} else {    
    $reg_errors['mobile'] = 'Mobile number can not be empty!';
}

但是当将手机号码插入数据库时​​,它不会像这样234223434,435453545等。

所以我想知道有没有办法将我的手机号码0加到数据库..

谢谢。

3 个答案:

答案 0 :(得分:4)

整数不会(不能)具有前导零。也就是说,'099'和'99'都代表相同的数值 1

改为使用char or varchar


1 有时,数字的文本表示中的前导零指定[八进制]基数,但这里的

答案 1 :(得分:3)

使用zerofill列。

答案 2 :(得分:3)

您无法存储前导零,但更大的问题是您不应将手机号码存储为INT。将其存储为CHAR。

手机号码是标识符,而不是数字值。如果改变数据模型,你会为自己省去很多悲伤。