데이터베이스와 bigint 열 유형이 있습니다. 매번이 칼럼에 가치를 삽입 할 때마다 항상 잘못된 숫자가 있습니다. 예를 들어 값 "198705122006041001"을 삽입하고이 값 "2147483647"을 항상 삽입합니다.bigint 올바르게 삽입되지 않음
필자는 laravel을 내 프로젝트에 사용하고 있지만, 올바르게 표시하지 않는 bigint를 표시하려면 설득력을 사용하지만 PDO를 수동으로 사용하면 제대로 표시됩니다.
데이터베이스와 bigint 열 유형이 있습니다. 매번이 칼럼에 가치를 삽입 할 때마다 항상 잘못된 숫자가 있습니다. 예를 들어 값 "198705122006041001"을 삽입하고이 값 "2147483647"을 항상 삽입합니다.bigint 올바르게 삽입되지 않음
필자는 laravel을 내 프로젝트에 사용하고 있지만, 올바르게 표시하지 않는 bigint를 표시하려면 설득력을 사용하지만 PDO를 수동으로 사용하면 제대로 표시됩니다.
분명히 int
인데 다시 확인해야하지만 bigint
이 아니기 때문에 다시 확인해야합니다. 2147483647
은 maximum possible value for signed int
PHP는 bigint 데이터 유형이 없으므로 overwflow하고 int.max를 대신 사용합니다. bigints를 문자열 또는 부동으로 나타내야합니다. 부유물은 정확하지 않으며 놀라움으로 이어질 수 있습니다.
MySQL에서 수학적 변환을 수행하고 필요하면 bigint로 캐스팅하는 것을 잊지 마십시오.
내가 열심히이 열의 값을 표시 reutrn 것입니다 내 문제는 2147483647 값이 무엇이든 상관없이입니다. PDO를 수동으로 사용하여 데이터를 검색하면 올바른 값이 표시됩니다. 그렇다면이 Bigint를 어떻게 Eloquent에서 처리 할 수 있습니까? varchar/text 또는 string으로 변환하는 것은 옵션이 아닙니다. 감사 –
https://laracasts.com/discuss/channels/eloquent/fbid-bigint-with-model-and-eloquent을 참조하십시오. Laravel 사용자도 동일한 문제를 겪었으므로 결과를 문자열로 변환해야했습니다.
또 다른 사용자 의견은 XAMPP가 PHP 정수의 크기를 제한하는 32 비트 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;
는 http://php.net/manual/en/language.types.integer.php
참조 https://laravel.com/docs/5.3/homestead를 설치하고 64 비트 PHP 바이너리를 얻을 :
이 코드를 사용하여 PHP 정수의 크기를 확인합니다.
내 문제는 내가 열을 사용하여이 열의 값을 표시하면 값이 무엇이든간에 reutrn 2147483647 것입니다. PDO를 수동으로 사용하여 데이터를 검색하면 올바른 값이 표시됩니다. 그래서 나는이 Bigint를 얌전하게 처리 할 수 있습니까? varchar/text 또는 string으로 변환하는 것은 옵션이 아닙니다. 감사합니다 –