我通过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!
答案 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
这将用零填充数字的左侧。