Php Mysql以不同的方式存储数字

Php Mysql以不同的方式存储数字,php,mysql,Php,Mysql,我试图在mysql数据库中存储一个电话号码。但它存储了不同的值 <form align="center" method="post" action="sendingdata.php" enctype="multipart/form-data"> <label for="phone">Phone Number </label></br> <input type="number" name="phone" id="pho

我试图在mysql数据库中存储一个电话号码。但它存储了不同的值

<form align="center" method="post" action="sendingdata.php" enctype="multipart/form-data">

<label for="phone">Phone Number </label></br>
            <input type="number" name="phone" id="phone" placeholder="90000 12345"/>


            <input class="submit" type="submit" />
我尝试输入的值是90000 00000。但数据库中存储的值是2147483647


ps:mysql中的数据类型是BIG INT

我认为您手机字段的数据类型是INT,因此无法存储90000 00000,请尝试将其更改为bigint。

这是
INT
大小。考虑使用“<代码> BigTime/Cube >或<代码> VARCHAR ,或使用固定宽度的<代码> char < /代码>列。


INT
的最大大小是有符号的“2147483647”和无符号的“4294967295”。而具有固定长度的
CHAR
可以是X位/字符长的任何数字。如果您使用
CHAR
VARCHAR
列,请确保首先验证您的输入,因为它将允许值中包含多个数字。

尝试将您的数据类型设置为VARCHAR(或字符(n)),而不是大整数。电话号码基本上是一种信息,无需使用它进行计算,因此,存储字符串类型的数据更好。

MySQL数据库中列的数据类型是什么?尝试以十进制格式存储数据,请检查字段类型。MySQL中的数据类型为BIG INT@McClayina phone number不是数字,存储为text或varcharData type显然不是
bigint
。还有@cske所说的-以文本格式存储电话号码。之前,Mysql的字段类型是int。仍然没有使用检查
$phone = $_POST['phone'];
$q = sprintf("insert into posts(title,price,description,imagepath,name,phone) values('%s',%d,'%s','%s','%s','%d')", mysqli_real_escape_string($conn, $title), mysqli_real_escape_string($conn, $price), mysqli_real_escape_string($conn, $description), mysqli_real_escape_string($conn, $imageName),mysqli_real_escape_string($conn, $username),mysqli_real_escape_string($conn, $phone));

if (mysqli_query($conn, $q)) {
    header('Location: index.php');
    echo "success";
}