6

我知道这个问题在这里被问了不止一次,但我找不到解决方案。

我们正在使用一个数据库,我们将 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。

4

1 回答 1

5

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

为什么哦,你为什么要这样做?

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

于 2012-08-14T10:06:55.453 回答