mySQL删除第一个数字

时间:2010-04-12 12:01:55

标签: php mysql database

我通过PHP脚本将数据输入到mySQL数据库中,但由于某种原因,当我检查数据库时,所有电话号码都删除了第一个数字,如此,0123456789在数据库中显示为123456789,但是如果我将数据类型从INT更改为TEXT,它显示正确,我非常犹豫要不要将它保留为TEXT,因为我确信随着数据库应用程序开始变得更加复杂,这将导致复杂化,这里是PHP代码。

    <?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());

        ?>

提前Thanx!

3 个答案:

答案 0 :(得分:2)

您需要将数字存储为CHAR,VARCHAR或TEXT。建议使用CHAR或VARCHAR,因为TEXT用于非常长的字符串并且效率不高。如果所有数字总是相同的长度则使用CHAR,否则使用VARCHAR。

您无法将其存储为INT的原因是数字0123456789实际上是123456789(假设初始值0不表示八进制:P)。字符串不同但数字相同。为了您的目的,电话号码必须是一个字符串。

答案 1 :(得分:0)

那是因为0000001只是1 ...

选择look at this post,它可能对您有很大帮助,我是通过this Google search找到的。

答案 2 :(得分:0)

使用ZEROFILL定义列:

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

这将用零填充数字的左侧。