MySQL int没有正确保存到DB中

时间:2014-03-20 07:06:28

标签: php mysql mysqli

以下是将数据发送到DB的代码:

$sql = "INSERT INTO facebook (`artist_id`, `facebook_id`, `likes`, `talking_about_count` , `facebook_username`)VALUES ('" . $artist_id . "','" . $artist_object->id . "','" . $artist_object->likes . "','" . $artist_object->talking_about_count . "','" . $artist_object->username . "')";

echo "Adding " .  $artist_object->username . " to Database";

echo '<br />' . $artist_object->id . '<br />';
var_dump($sql);

这是回应页面的内容:

Adding tiesto to Database
12626353545
string(160) "INSERT INTO facebook (`artist_id`, `facebook_id`, `likes`, `talking_about_count` , `facebook_username`) VALUES ('5','12626353545','16868620','428952','tiesto')"

以下是用户#5的数据库中反映的内容

artist_id : 5
facebook_id : 2147483647
likes : 16868620
talking_about_count : 428952
facebook_username : tiesto

导致数据库更改Facebook ID号码的原因是什么?我原本以为它可能与INT字段的长度有关,但我已将其设置为30,并确保编码设置正确。有点难过这个?

2 个答案:

答案 0 :(得分:3)

您的价值超出了INT的限制。 INT(30)是不可能的。

请参阅MySql Page

答案 1 :(得分:2)

将int更改为bigint。

ALTER TABLE `facebook` MODIFY COLUMN `facebook_id`  bigint NOT NULL;