插入MYSQL表的值与原始值不同

mjs*_*mer 2 php mysql wordpress

当我将它插入MYSQL表时,我遇到了一个更改值的奇怪问题.

这是一个Wordpress主题.

这是代码的要点:

$user_id = $_COOKIE['user-id'];
$wpdb->insert($custom_table,array('user_id'=>$user_id));
Run Code Online (Sandbox Code Playgroud)

$ custom_table的'user_id'字段的类型是int(15).

我正在测试自己.存储在我的cookie中的用户ID是4022466561291.它作为2147483647存储在数据库中.

我也尝试过这种设置的各种组合:

$user_id = intval($_COOKIE['user-id']);
$wpdb->insert($custom_table,array('user_id'=>$user_id),array('%d'));
Run Code Online (Sandbox Code Playgroud)

结果相同.

有任何想法吗?

Pek*_*ica 7

这是因为2147483647 有符号4字节的最大值INT.

您需要使用8字节BIGINT或 - 可能更合适 - a VARCHAR.

(15)INT有点误导.它只是一个可选的显示长度限制.它不会更改数据类型的实际容量.