我在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的选项,但是那也不起作用.
这是int的PHP最大值,最小值:
最小整数:-9223372036854775808
最大整数:9223372036854775807
有什么办法吗?
更新:
这是我插入数据的方式:
$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
强调:
[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
插入结果: