我知道这个问题在这里被问过不止一次,但我找不到解决方案。
我们正在使用一个数据库,我们将 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 的解决方法。
最佳答案
We are using a database where we are storing the facebook id as a BIGINT(20).
为什么哦,你为什么要那样做?
我认为普遍的共识是 Facebook id 不应保存为数字类型,而应保存为字符串。将它们保存为数字不会产生任何优势 - 但会产生一些缺点。
关于php - 如何使用 PDO 在 MySQL 中存储 BIGINT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938384/