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

先行ゼロを保存することはできませんが、より大きな問題は、携帯電話番号を INT として保存しないことです。CHAR として格納します。

携帯電話番号は識別子であり、数値ではありません。データ モデルを変更すれば、多くの問題を解決できます。

于 2013-01-26T02:45:46.187 に答える
4

整数には先行ゼロがありません (できません)。つまり、'099' と '99' はどちらも同じ数値1を表します。

代わりにchar または varcharを使用してください。


1数値のテキスト表現の先行ゼロが [8 進] 基数を指定する場合がありますが、ここではそうではありません

于 2013-01-26T02:38:39.303 に答える
3

zerofillあなたのコラムに使用してください..

于 2013-01-26T02:39:29.880 に答える