如何使用PDO在MySQL中存储BIGINT?

时间:2012-08-13 16:27:15

标签: php mysql facebook pdo

我知道这个问题不止一次在这里被问过,但我找不到解决办法。

我们正在使用一个数据库,我们将facebook id存储为BIGINT(20)。

create table users(
     fb_id bigint(20) NOT NULL,
     user_name varchar(30) NOT NULL,
     CONSTRAINT uk_name unique (user_name), 
     CONSTRAINT pk_fb_id primary key (fb_id)
)ENGINE=INNODB;

但PHP的PDO引擎只能插入PHP的最大整数值,即2147483647。

$stmt->bindParam(':fb_id', $this->fb_id, PDO::PARAM_INT);

我明白这很明显,因为我们受到PHP中整数的最大值的限制。我试着用字符串 -

$stmt->bindParam(':fb_id', $this->fb_id, PDO::PARAM_STR);

但仍然不起作用。

我想知道是否有解决方法可以将其存储为bigint。

1 个答案:

答案 0 :(得分:5)

  

我们正在使用一个数据库,我们将facebook id存储为BIGINT(20)。

为什么你为什么这样做?

我认为普遍的共识是Facebook ID不应该保存为数字类型,而应该保存为字符串。将它们保存为数字并不会产生任何好处 - 但有几个缺点。