Php SQL更改输入请求

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

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

PHP:

在数据库中,PHPMyAdmin显示为


为什么要更改号码?

如果没有表单的代码,就有点难以知道。你能把表格的代码填上吗?我不认为它和mysql有任何关系,除非您将那个电话号码作为默认值。您可以测试它,而不是
$pnumber=$\u请求['pnumber']
编写类似于
$pnumber=20122222。另外,您不应该将电话号码存储为
int
,我建议最好使用
char
varchar

如果没有表单的代码,就有点难以识别。你能把表格的代码填上吗?我不认为它和mysql有任何关系,除非您将那个电话号码作为默认值。您可以测试它,而不是
$pnumber=$\u请求['pnumber']
编写类似于
$pnumber=20122222。另外,您不应该将电话号码存储为
int
,我建议最好使用
char
varchar

该号码2147483647听起来像,因此可能int不是该列的正确数据类型。也许可以试试bigint。

这个数字2147483647听起来像,所以可能int不是该列的正确数据类型。可能尝试使用bigint。

pnumber类型从
int更改为string
,如同转到Phpmyadmin并添加相同的数字一样,然后您将获得相同的int值,因此将其更改为string,因为它是int的上限值。

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

您是否尝试过
var\u dump($pnumber)?是否在天气不好时回显数字检查?是否尝试了变量转储($pnumber)?您是否回显了数字检查结果?将其更改为
无符号bigint
后,它接受我现在给出的数字。谢谢将其更改为
无符号bigint
后,它接受我现在给出的数字。谢谢
$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();