我正在尝试将电话号码存储在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" />
以下是sendingdata.php
$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";
}
我尝试输入的值是90000 00000.但是存储在数据库中的值是2147483647
ps:mysql中的数据类型是BIG INT
答案 0 :(得分:3)
这是maximum INT
大小。请考虑使用BIGINT
或VARCHAR
column或具有固定宽度的CHAR
列。
INT
的最大尺寸为&#34; 2147483647&#34;签署了&#34; 4294967295&#34;无符号。而具有固定长度的CHAR
可以是任何长度为X位/字符的数字。如果您使用CHAR
或VARCHAR
列,请务必先验证输入,因为它会允许值中的数字以上。
答案 1 :(得分:2)
尝试将数据类型设置为VARCHAR(或CHARACTER(n))而不是BIG INT。电话号码基本上是一个信息,不需要用它来计算,所以当你存储在字符串类型数据中时它会更好。
答案 2 :(得分:0)
我认为您的手机字段的数据类型为int,因此无法通过将其更改为bigint来存储90000 00000。