2

我能知道为什么当它的类型为整数时它没有向我的数据库插入零吗?我有一个名为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。

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

谢谢你。

4

3 回答 3

4

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

请改用char 或 varchar


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

于 2013-01-26T02:38:39.303 回答
4

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

手机号码是标识符,而不是数值。如果你改变你的数据模型,你会省去很多麻烦。

于 2013-01-26T02:45:46.187 回答
3

用于zerofill您的列..

于 2013-01-26T02:39:29.880 回答