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="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

最佳答案

那就是maximum INT 大小。考虑使用 BIGINTVARCHAR column ,或具有固定宽度的 CHAR 列。

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

关于php - Mysql存储数字的方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849082/

相关文章:

php - 与 PHP 更新用户的斗争

php - preg_match 匹配定义数量的字符,需要至少一位数字和至少一个字母

mysql - 如何在 mysql 触发器中创建一行以满足 FK 约束

php - 在我的表 : It shows one record less 中显示记录时出错

php - 在不同插件中使用 add_submenu_page 到 add_menu_page 时出错

php - 如何从表中选择列值?

mysql - 为 MySQL 性能更改内存 - MySQLTuner

php - 以正确的方式使用 AJAX JSON PHP 在表中显示数据

mysql - 查询获取MYSQL中列子集的总和

mysql - mySQL 中的分层数据应该如何构建