1

我正在创建一个表单以在我的个人网站上向我提交消息。无论如何,我创建的脚本有一个变量 ,$pnumber它代表某人将提交的电话号码。然而,当它到达 MySQL 数据库时,它总是会出现相同的结果:2147483647. 无论我在表格中输入什么数字,它总是以2147483647. 其他一切都很好,我很确定我的 PHP 脚本没有改变它。我不确定这是否与我在 PHPMyAdmin 中配置该列的方式有关,但这就是我不明白的:为什么要更改它?

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();

在数据库中,PHPMyAdmin 显示pnumber

PHPMyAdmin 表

为什么要更改号码?

4

3 回答 3

1

这个数字 2147483647 听起来像是有符号整数的上限,所以可能 int 不是该列的正确数据类型。也许试试 bigint。

于 2012-08-15T05:38:19.713 回答
0

没有表单的代码,有点难以知道。你能把表格的代码吗?除非您将该电话号码作为默认值,否则我认为它与 mysql 没有任何关系。您可以通过而不是$pnumber = $_REQUEST['pnumber'];编写类似$pnumber = 201222222;. 另外,您不应该将电话号码存储为int,我推荐更好的 acharvarchar

于 2012-08-15T05:34:42.463 回答
0

在去 Phpmyadmin 时将pnumber类型从as更改int to string并添加相同的数字,然后您将获得相同的 int 值,因此将其更改为 string,因为它是 int 的上限值

于 2012-08-15T05:50:38.280 回答