У меня есть строка в PHP (пришедшая из некоторого источника данных), которая представляет собой отформатированное 32-разрядное целое число без знака.
Мне нужно сохранить его в базе данных MySQL в виде знакового 32-разрядного целого числа, чтобы позже я мог извлечь его из PHP и использовать его в качестве (возможно, отрицательной) целочисленной константы со знаком (так как PHP не имеют целые числа без знака).
Итак, мне нужен метод конвертации для PHP или MySQL. Он не должен зависеть от платформы (без проблем с порядком байтов / 32/64-бит).
Я знаю, как преобразовать целое число без знака с помощью MySQL:
select CAST((-1062726980 & 0xFFFFFFFF) AS UNSIGNED INTEGER);
+------------------------------------------------------+
| CAST((-1062726980 & 0xFFFFFFFF) AS UNSIGNED INTEGER) |
+------------------------------------------------------+
| 3232240316 |
+------------------------------------------------------+
Но я не могу заставить его работать наоборот (примечание: MySQL использует 64-битную арифметику при выполнении приведения).
Спасибо.