Sé que esta pregunta se ha formulado más de una vez aquí, pero no he podido encontrar una solución.¿Cómo guardo un BIGINT en MySQL usando PDO?
Estamos utilizando una base de datos donde almacenamos el id de facebook como 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;
Pero el motor PDO de PHP puede insertar sólo el valor entero máximo de PHP, es decir 2147483647.
$stmt->bindParam(':fb_id', $this->fb_id, PDO::PARAM_INT);
Esto, entiendo, es bastante obvio ya estamos limitados por el valor máximo de entero en PHP. Traté de usar la cadena -
$stmt->bindParam(':fb_id', $this->fb_id, PDO::PARAM_STR);
pero todavía no funciona.
Quiero saber si podría haber una solución alternativa para almacenarlo como bigint.
¿Qué hay de usar 'PDO :: PARAM_INT' pero estableciendo el valor en una cadena con un número realmente grande? '" 892347932075913 "' –
Si uso 'PDO :: PARAM_INT', la' cadena grande 'se reduce a '2147483647', el valor máximo permitido. – banskt
'PDO :: PARAM_STR' con el valor como' cadena larga' ¿tampoco funciona? No tengo idea entonces. –