decbin работает, когда я вставляю число напрямую, а не когда извлекаю его из базы данных - PullRequest
0 голосов
/ 24 февраля 2019

Я использую базу данных, которая хранит данные в десятичном формате.Я конвертирую его в двоичный файл, чтобы я мог читать его как включенным, так и выключенным.У меня не было проблем, пока десятичная длина не превысила 6 символов.

Работает следующее:

$value = 2147614720;
$value = decbin($value);

Вывод: 10000000000000100000000000000000

Однако, если я попытаюсь извлечь это значение из базы данных, оно не будет работать, если оно превышает 6символов.

$value = $row['decimalvalue'];
$value = decbin($value);

Вывод: 1111111111111111111111111111111

Любая помощь будет отличной.Спасибо.

1 Ответ

0 голосов
/ 06 марта 2019

До недавнего времени PHP создавался только с 32-битными целыми числами.Это может объяснить, почему второй отказывает.Но удивительно, почему первый пример сработал.

2147614720> 2 ^ 31-1, поэтому он превратился в 2 ^ 31-1 = 2147483647.

Обновите ваш PHP.

...