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 に答える