php - 数据上传在数据库 Codeigniter 中显示不同的值

标签 php mysql codeigniter

我有一个表单,从中获取要保存到数据库中的值。运行插入查询,它将插入到数据库中,但问题是保存的电话号码看起来像这个号码“2147483647”,尽管在查询中传递了号码9846586583。每次我插入它时都会保存这个号码。

我设置的电话号码列的数据类型是int(16) .

下面是 <?php $this->output->enable_profiler(true);?> 显示的查询这显示了正确的查询

INSERT INTO `posts` (
    `country`,
    `city`,
    `area`,
    `street`,
    `house_no`,
    `house_type`,
    `floor`,
    `number_of_rooms`,
    `price`,
    `owners_phone`,
    `posted_by`,
    `featured_post`
)
VALUES
(
    'nepal',
    'pkr',
    'ratekhoire',
    'fulbari',
    '45',
    '1s',
    '0',
    '7',
    '10000',
    '9846586583',
    'bhabi',
    'Y'
)

最佳答案

原因:

2147483647 是 MySQL 的最大 int 值。
原因是因为有符号整数的最大值是 2147483647。即使您指定了 INT(16),也不意味着您可以存储的长度为 16,因为最大允许值是 2147483647。INT 声明中 16 的含义是填充零的长度,仅在列上启用 ZEROFILL 时才适用。但长度仍然不能达到16个字符。

如果您将原始数据保存为9846586583,它将被截断为最大值2147483647。


解决方案:

只需将数据类型从 int 更改为 bigintvarchar.

关于php - 数据上传在数据库 Codeigniter 中显示不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25820795/

相关文章:

php - 使用 codeigniter 在 php URL 路由中发出警告

php - CodeIgniter 中带有单表的多级菜单

php - 如何从 GitHub 推送到你的 VPS

php - 即使有 htmlspecialchars 函数,如何使 <br> 工作

mysql - 在 MySQL 中转换日期

mysql - mySQL 中每个子查询的最大值

php - 无法使用 codeigniter 从数据库中检索数据

php - codeigniter数据库查询/mysql

php - 在 php 上使用 api 通过网站进行视频音频通话

mysql - MPTT选择根元素mysql