SQL更改输入请求

I'm creating a form to submit messages to me on my personal website. Anyway, the script i've created has a variable, $pnumber, which represents the Phone Number that someone would have submitted. When it gets to the MySQL database, however, it always comes out the same thing: 2147483647. No matter what number I enter in my form, it always comes out as 2147483647. Everything else is fine, and i'm pretty sure that my PHP script isn't changing it. I'm not sure if this has to do with how i've configured the column in PHPMyAdmin, but that's what I don't get: Why is it being changed?

PHP:

$pnumber = $_REQUEST['pnumber'];
$largetext = $_REQUEST['comment'];
if ($pnumber == "") {
    $pnumber = 0;   
}
try {
    $sql = "INSERT INTO contact SET
             fname = :fname,
             lname = :lname,
             email = :email,
             pnumber = :pnumber,
             mtext = :largetext,
             date = CURDATE()";
    $s = $pdo->prepare($sql);
    $s->bindValue(':fname',$firstname);
    $s->bindValue(':lname',$lastname);
    $s->bindValue(':email',$email);
    $s->bindValue(':pnumber',$pnumber);
    $s->bindValue(':largetext',$largetext);
    $s->execute();

and in the database, PHPMyAdmin shows pnumber as

PHPMyAdmin table

Why is the number being changed?

That number, 2147483647, sounds like the upper bound of a signed integer, so maybe int is just not the right data type for the column. Maybe try bigint.

It's a little bit difficult to know without the code of the form. Can you please put the code of the form? I don't think it has anything to do with the mysql unless you have that phone number as default value. You can test it by instead of $pnumber = $_REQUEST['pnumber']; to write something like $pnumber = 201222222; . Also you shouldnt store phone numbers as int , i recommend better a char or varchar

Change the pnumber type from int to string as while going to Phpmyadmin and add same number then you will get same int value so change it to string as it is upper bound value for int