mySQL ilk basamağı kaldırır

3 Cevap php

Ben bir PHP komut dosyası aracılığıyla bir mySQL veritabanına veri giren, ama ben veritabanını kontrol nedense, tüm telefon numaralarını ben değiştirmek eğer öyleyse, 0123456789 veritabanında 123456789 olarak gösterir gibi, ilk basamak kaldırdık, ama METİN INT gelen veri türü, bu doğru gösterir ben veritabanı uygulaması daha karmaşık hale başlar gibi bu yolda daha fazla komplikasyonlara neden olacaktır eminim ben, olsa METİN olarak tutmak için çok kararsız duyuyorum, burada PHP kodu .

    <?php


$gender = $_POST['gender']; 

$first_name = $_POST['first_name']; 

$second_name = $_POST['second_name']; 

$id_number = $_POST['id_number']; 

$home_number = $_POST['home_number']; 

$cell_work = $_POST['cell_work']; 

$email_address = $_POST['email_address']; 


        $curDate = date("Y-m-d");

        mysql_connect ("server", "user", "pass") or die ('Error: ' . mysql_error());
        mysql_select_db ("database");

        $query = "INSERT INTO table (id,gender,first_name,second_name,id_number,home_number,cell_work,email_address,date) VALUES('NULL','".$gender."','".$first_name."','".$second_name."','".$id_number."','".$home_number."','".$cell_work."','".$email_address."','".$curDate."' )";

        mysql_query($query) or die (mysql_error());

        ?>

Önceden teşekkürler!

3 Cevap

Eğer bir CHAR, VARCHAR ya da TEXT olarak numarayı saklamak gerekir. METİN çok uzun dizeleri ve verimli olmadığı CHAR ya da VARCHAR tavsiye edilir. tüm numaralar aksi takdirde her zaman aynı uzunlukta veya VARCHAR eğer CHAR kullanın.

Bir INT olarak bu saklayamazsınız nedeni numarası 0123456789 (: P bir başlangıç ​​0 sekizlik anlamına gelmez varsayarak) aslında 123456789 olmasıdır. dizeleri farklı ama sayıları aynıdır. amaçlar için telefon numarası bir dize olması gerekir.

0000001 sadece 1 çünkü o ...

look at this post, bu size çok yardımcı olabilecek bir atın, ben this Google search üzerinden bulundu.

Kullanarak sütun tanımlamak ZEROFILL:

ALTER TABLE `sweet_table` CHANGE `id` `id` INT( 9 ) UNSIGNED ZEROFILL NOT NULL

Bu irade ped sıfır ile sayının sol tarafı.