PHP MSSQL - Bigint возвращается как float с потерей точности - PullRequest
1 голос
/ 06 мая 2019

Использование PHP 5.5 x64 в Ubuntu.

Я пытаюсь получить некоторые данные из базы данных MSSQL, используя mssql_query ;в извлеченных столбцах существует множество типов данных, и кажется, что независимо от того, что я пытаюсь сделать, bigints (обычно числовой длины 19) всегда преобразуются в число с плавающей точкой с потерей точности.

Вместо получения 1000000000000000010,Иногда я получаю 1000000000000000012 или 1000000000000000009 и т. Д.

До сих пор я пытался:

  • Изменение точности с ini_set до 19 (работает как и ожидалось до 1617 и выше, похоже, не действуют)

  • Игра с fetch_assoc и fetch_object

  • Использование PDO (не sqlsrv)

  • Обновление до PHP 7.2 и использование PDO (не sqlsrv)

Возможно изменение настроек PHP и установка пакетов - изменение типа данных SQL Server, к сожалению, не«т.Из соображений производительности я избегаю использования CONVERT, поскольку имею дело с большими данными.

Как можно избежать потери точности последней цифры?

...