mysql 在查找和插入时将整数截断为奇怪的数字

2024-02-02

我在 php 中使用 Laravel 的 Eloquent 来插入和查找记录。 发生的情况是,当我插入一个整数时,这里是 -1001094515039,它会将其更改为 -367135071 并将其存储在字段中。 字段类型是 Bigint,长度为 20 个字符,我尝试将其存储在文本类型字段和 Varchar 字段中,但发生了同样的情况。 另外,当我在 phpMyAdmin 中手动将其更改为 -1001094515039 时,我尝试使用 Eloquent 的 find 方法找到它,但它没有给我该记录!

该脚本在我的第一台使用 PHP 5.X 的服务器上运行,当前服务器使用 php 7.x,我认为可能是这种情况! 我尝试过将 MYSQL_ATTR_MAX_BUFFER_SIZE 设置为 16 * 1024 * 1024 的选项,但这也不起作用。

以下是 PHP int 的最大值、最小值:

最小整数:-9223372036854775808 最大整数:9223372036854775807

有什么解决办法吗?


UPDATE:

这就是我插入数据的方式:

$Group = new Group();
$Group->id = -1001094515039;
$Group->registerdate = "2017-02-03 00:56:01";
$Group->name = "Test Ginger 2";
$Group->owner_id = 81997375;
$Group->save();

var_dump($Group->save()) 结果是:http://textuploader.com/d1oo7 http://textuploader.com/d1oo7

强调:

[attributes:protected] => Array
            (
                [id] => -1001094515039
                [registerdate] => 2017-02-03 00:56:01
                [name] => Test Ginger 2
                [owner_id] => 81997375
            )

显示建表结果:

CREATE TABLE `groups` (
 `id` bigint(20) NOT NULL,
 `name` varchar(100) CHARACTER SET utf8mb4 NOT NULL,
 `owner_id` int(11) NOT NULL,
 `acive` tinyint(1) NOT NULL DEFAULT '0',
 `autorounds` tinyint(1) NOT NULL DEFAULT '0',
 `timezone` varchar(50) NOT NULL DEFAULT 'Pacific/Easter',
 `registerdate` datetime NOT NULL,
 PRIMARY KEY (`id`),
 KEY `owner_id` (`owner_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

Result of the Insert: http://i.imgur.com/jb6lNmx.png


我现在怀疑我理解了这个问题。

我在 php 5.5 实例和 php 7.0 实例上运行了以下 var_dumps。 dd(array('RawValue' => -1001094515039), array('using intval()' => intval(-1001094515039)), array('PHP 版本' => phpversion()));

以下是结果:

5.5

数组:1 [▼ “原始值”=>-1001094515039.0 ] 数组:1 [▼ “使用 intval()” => -367135071 ] 数组:1 [▼ “PHP 版本”=>“5.5.12” ]

7.0

数组:1 [▼ “原始值”=>-1001094515039 ] 数组:1 [▼ “使用 intval()” => -1001094515039 ] 数组:1 [▼ “PHP 版本”=>“7.0.4” ]

此[链接]中有更多信息:http://php.net/manual/en/function.intval.php http://php.net/manual/en/function.intval.php,但我怀疑 php 中的原始数字和整数从 5 到 7 的更改导致了您的问题。将变量包装在 intval() 中应该可以解决您的问题。

希望这能解决您的问题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 在查找和插入时将整数截断为奇怪的数字 的相关文章

  • 解析错误:语法错误,意外的 T_RETURN [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 遇到这个问
  • 收到警告“标头不能包含多个标头,检测到新行”

    我正在用 oops 进行编码 以便用 PHP 上传图像 但是提交图片后却出现警告 标题不能包含多个标题 检测到新行 下面是我的函数 它给出了错误 public function ft redirect query if REQUEST UR
  • PHP 的脚手架 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 PHP 中有什么东西可以像 Rails 一样创建基本的脚手架吗 编辑 我需要一些东西来快速原型化 一些框架比如Symfony http www sym
  • 检查字符串是否是哈希值

    我正在使用 SHA 512 来散列我的密码 当然还有盐 我认为我想要的不可能 但无论如何我们还是要问一下 有没有办法检查字符串是否已经是 SHA 512 或其他算法 哈希值 当用户登录时 我想检查他的密码 如果它仍然是纯文本 则应将其转换为
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • PHP-docker容器中的环境变量

    我想在我的 docker 容器中显示一个环境变量 PHP 脚本如下所示 我使用 OpenShift 来启动容器 PHP 容器显示 env is 现在我更改容器的 dc 配置 oc env dc envar USER Pieter deplo
  • json_encode 返回 NULL?

    由于某种原因 项目 描述 返回NULL使用以下代码 这是我的数据库的架构 CREATE TABLE staff id int 11 NOT NULL AUTO INCREMENT name longtext COLL
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • PHP 脚本不断执行 mmap/munmap

    我的 PHP 脚本包含一个循环 它只不过是回显和取消引用指针 如 tab othertab i gt 中的内容 直到昨天 这个脚本开始变得非常慢 比以前慢了 50 倍 之前 它一直运行良好 使用 strace 后 我发现 90 的情况下 脚
  • 合并 2 个数组并合并数字键的结果

    我有 2 个数组 我希望通过每个数字键将其中合并 分组在一起 例如 Array1 2009 gt 131 2008 gt 940 2007 gt 176 2006 gt 1 Array2 2008 gt 9 2007 gt 3 我希望输出是
  • Paypal 将钱从一个帐户转移到另一个帐户

    我知道这个建议如何汇款至任何 PayPal 账户 https stackoverflow com questions 1559808 paypal api send money to any paypal account但到目前为止我所尝试
  • ACL授权失败后ZF3重定向

    我有一个带有 ACL 的新 ZF3 应用程序 现在 我需要在未经授权的访问的情况下重定向到错误页面 例如 403 我认为最好的方法是触发一个事件 然后捕获它 但我失败了 全部都在我的用户模块中Module php 摘录 namespace
  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • 使用 file_get_content 发布数据

    我已经做了一些关于如何使用的研究file get content与帖子 我也读过this one https stackoverflow com questions 2445276 how to post data in php using
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • if/else 简写来定义变量

    我很难理解 if else 的 php 简写是如何描述的here https stackoverflow com questions 20233207 php if shorthand and echo in one line possib
  • rake db 问题:迁移 -

    我无法为 Ruby on Rails 设置 MySQL 数据库 设置数据库并确保 config database yml 文件匹配后 我遇到了以下错误消息 U Rails alpha gt rake db migrate trace in
  • 通过 Sparkpost 发送 iCal 邀请

    我正在尝试使用 SparkPost 通过电子邮件以附件形式发送日历邀请 但收到电子邮件后邀请不会打开 我使用两个文件 calendarinvite php 来创建邀请 使用 Sendemail php 来发送电子邮件 calendarinv

随机推荐