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

ban*_*skt 6 php mysql pdo facebook

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

我们正在使用一个数据库,我们将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;
Run Code Online (Sandbox Code Playgroud)

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

$stmt->bindParam(':fb_id', $this->fb_id, PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)

据我所知,这是非常明显的,因为我们受到PHP中整数的最大值的限制.我试着用字符串 -

$stmt->bindParam(':fb_id', $this->fb_id, PDO::PARAM_STR);
Run Code Online (Sandbox Code Playgroud)

但它仍然不起作用.

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

CBr*_*roe 5

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

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

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