Mysql bigint未正确插入

Mysql bigint未正确插入,mysql,laravel,bigint,Mysql,Laravel,Bigint,我有一个数据库和一个bigint列类型。每次我在此列中插入值时,我总是得到错误的数字。例如,我插入值“198705122006041001”,它总是插入这个值“2147483647” 我在我的项目中使用laravel,如果我使用eloquent来显示bigint,它将不会正确显示,但是如果我手动使用PDO,它将正确显示。您应该再次检查,因为它肯定是int,但不是bigint2147483647是一种PHP没有bigint数据类型,它使用int.max代替。必须将大整数表示为字符串或浮点。请注意,

我有一个数据库和一个bigint列类型。每次我在此列中插入值时,我总是得到错误的数字。例如,我插入值“198705122006041001”,它总是插入这个值“2147483647”


我在我的项目中使用laravel,如果我使用eloquent来显示bigint,它将不会正确显示,但是如果我手动使用PDO,它将正确显示。

您应该再次检查,因为它肯定是
int
,但不是
bigint
2147483647
是一种

PHP没有bigint数据类型,它使用int.max代替。必须将大整数表示为字符串或浮点。请注意,浮动不是精确的,可能会导致意外

在MySQL中进行数学转换,必要时不要忘记转换为bigint。

请参阅。Laravel用户也有同样的问题,最终不得不将结果转换为字符串

另一个用户评论指出,XAMPP只提供32位PHP二进制文件,这限制了PHP整数的大小

使用以下代码检查PHP整数大小:

<?php

echo "Integer size can be determined using the constant PHP_INT_SIZE="
  . (PHP_INT_SIZE * 8) 
  . " bits, maximum value using the constant PHP_INT_MAX="
  . PHP_INT_MAX;

我的问题是,如果我使用Eloquent来显示此列的值,则无论值是什么,它都将重新显示2147483647。如果我手动使用PDO检索数据,它将显示正确的值。那么我如何才能用雄辩的语言来处理这个问题呢?转换为varchar/text或string不是一个选项。谢谢,我的问题是,如果我使用Eloquent来显示此列的值,那么无论值是什么,它都会重新显示2147483647。如果我手动使用PDO检索数据,它将显示正确的值。那么我如何才能用雄辩的语言来处理这个问题呢?转换为varchar/text或string不是一个选项。谢谢