Случайное значение, вставляемое в базу данных при использовании php [closed]

0

Я пытаюсь вставить номер телефона в свою базу данных. Я могу подключиться и вставить все другие данные из моей формы (адрес, адрес электронной почты и т.д.) В базу данных отлично, но когда номер телефона вставлен, он игнорирует фактически номер телефона, ТОЛЬКО вводит этот int 2147483647. Независимо от того, какой номер телефона я использую, только эти цифры отображаются в столбце в моей базе данных. Любая помощь будет принята с благодарностью!

Здесь часть php, которая собирает номер телефона из формы на моем веб-сайте

$Phone1 = $_POST['Phone1'];

Здесь html-форма, которая получает номер телефона

<span>
            <input id="element_2_1" name="Phone1" class="element text" size="10" maxlength="10" value="" type="text">
            <label for="element_2_1">(###) ### - ####</label>
</span>

здесь выражение SQL Insert

$sqlInsert = "INSERT INTO 'phpmy1_belairfinishing_com'.'Contact'('ID', 'FName', 'LName', 'Phone', 'Street', 'City', 'State', 'Country', 'Zipcode', 'Email', 'Message') VALUES (NULL, '".$FName."', '".$LName."', '".$Phone1."', '".$Street."', '".$City."', '".$State."', '".$Country."', '".$Zipcode."', '".$Email."', '".$Message."')";

  • 2
    какой тип столбца для Phone ?
  • 3
    предупреждение о том, что ваш код может быть уязвим к атакам SQL-инъекций!
Показать ещё 3 комментария
Теги:

3 ответа

6
Лучший ответ

Вы храните номер телефона как INT, и телефонные номера НЕ Интс. Подписанный 32-битный int имеет максимальное значение 2 147 483 648. В терминах номеров телефонов это будет 214-748-3648. Если вы вставляете номер телефона "больше", чем это, например, 777-777-7777, ну, вы получаете именно то, что хотите - максимально возможное подписанное 32-битное целочисленное представление вашего номера телефона.

Вместо этого используйте поле varchar.

  • 1
    Кроме того, номер телефона может начинаться со значимых нулей, и они будут игнорироваться, если принимать их за число.
2

db пытается интерпретировать ваш телефонный номер как int, но значение больше thax max значение столбца int, следовательно max int

1

Не сохраняйте phonenumber как Int, сохраните его как Varchar

Зачем вам это делать?

Поскольку вам не нужно вычислять с помощью phonenumber и в основном показывать только, что Varchar лучше используется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню