
MongoDBBSONInt64::__toString 오류는 PHP의 정수형이 32비트 정수 타입인 것과 MongoDB의 Int64 타입이 64비트 정수 타입인 것의 차이로 인해 발생합니다.
PHP의 정수형은 32비트 정수 타입이기 때문에, Int64 타입의 큰 값을 변환할 때 오류가 발생합니다.
이 문제를 해결하려면, PHP의 정수형을 64비트 정수 타입으로 변환하는 방법을 사용해야 합니다.
PHP 7.0 이상부터는 int64 타입을 지원하기 때문에, int64 타입을 사용하여 Int64 타입의 큰 값을 변환할 수 있습니다.
#hostingforum.kr
php
$int64 = new MongoDBBSONInt64(9223372036854775807);
echo $int64->toIntString(); // 9223372036854775807
또는, PHP의 BC Math 확장을 사용하여 64비트 정수 타입을 사용할 수 있습니다.
#hostingforum.kr
php
$int64 = new MongoDBBSONInt64(9223372036854775807);
echo bcadd($int64->toIntString(), 0, 64); // 9223372036854775807
또한, PHP 7.4 이상부터는 int128 타입을 지원하기 때문에, int128 타입을 사용하여 Int64 타입의 큰 값을 변환할 수 있습니다.
#hostingforum.kr
php
$int64 = new MongoDBBSONInt64(9223372036854775807);
echo $int64->toIntString(); // 9223372036854775807
2025-04-26 17:31