Php 正在获取超出范围的数值,但I';我创造了它

Php 正在获取超出范围的数值,但I';我创造了它,php,sql,laravel,Php,Sql,Laravel,我有一个表,其中一列是request_id,它在迁移中定义如下: $table->bigInteger('request_id')->index()->unsigned()->nullable(); 当我在表结构中查看phpmyadmin时,它说 bigint(20) UNSIGNED 我正在向我的api发出请求,并通过此值发送:156247865319 $requestLog = new RequestLog(); $requestLog->requ

我有一个表,其中一列是request_id,它在迁移中定义如下:

$table->bigInteger('request_id')->index()->unsigned()->nullable();
当我在表结构中查看phpmyadmin时,它说

bigint(20)      UNSIGNED
我正在向我的api发出请求,并通过此值发送:
156247865319

$requestLog = new RequestLog();
$requestLog->request_id = 1562247865319;
$requestLog->save();
此代码出错并发回数值超出范围:1264超出范围

真正奇怪的是,当我在phpmyadmin中时,我可以手动将该列的值设置为比156247865319大得多的值,但当我通过我的laravel模型进行设置时,它不喜欢它

编辑

错误消息是

SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'request_id' at row 1 (SQL: insert into `request_logs` (`ip`, `submitted_user_name`, `url`, `full_url`, `method`, `request_id`, `request_data`, `api_user_id`, `updated_at`, `created_at`) values (..., ..., ..., http://..../api/..., POST, 1562247865319, {"request_id":"1562248616206"}, 2, 2019-07-04 14:57:00, 2019-07-04 14:57:00))

我觉得这个问题和你的是一样的


尝试将任何未签名的整数更改为已签名。

我认为此问题与相同


尝试将任何未签名的整数更改为已签名。

请随时查看完整的错误消息!不是它的摘要您的
PHP\u INT\u MAX
值是多少?@Haru INT size 8,INT MAX 9223372036854775807请务必查看完整的错误消息!不是它的摘要你的
PHP_INT_MAX
值是多少?@Haru INT size 8,INT MAX 9223372036854775807当我将其更改为signed并添加到列中时,出于某种原因,它使值为负值…但它是相同的数字吗?对不起,不是,它不是相同的值我尝试分配156247865319,它存储为-1120230425当我将其更改为已签名并将其添加到列中时,由于某种原因,它使值为负值…但它是相同的数字吗?抱歉,不,它不是相同的值我尝试分配156247865319,它存储为-1120230425