MySQL удаляет первую цифру - PullRequest
3 голосов
/ 12 апреля 2010

Я ввожу данные в базу данных mySQL через скрипт PHP, но по какой-то причине при проверке базы данных у всех телефонных номеров удаляется первая цифра, например, 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());

        ?>

Спасибо заранее!

Ответы [ 3 ]

2 голосов
/ 12 апреля 2010

вам нужно будет сохранить номер как CHAR, VARCHAR или TEXT.CHAR или VARCHAR рекомендуются, поскольку TEXT предназначен для очень длинных строк и не так эффективен.используйте CHAR, если все числа всегда имеют одинаковую длину, или VARCHAR в противном случае.

причина, по которой вы не можете сохранить это как INT, состоит в том, что число 0123456789 на самом деле равно 123456789 (при условии, что начальный 0 не означает восьмеричное:П).строки разные, но числа одинаковые.для ваших целей номер телефона должен быть строкой.

0 голосов
/ 12 апреля 2010

Определите столбец, используя ZEROFILL :

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

Это заполнит левую часть числа нулями.

0 голосов
/ 12 апреля 2010

Это потому, что 0000001 это просто 1 ...

Взгляните на этот пост , он может вам сильно помочь, я нашел его через этот поиск Google .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...