DeadMorozBLR
Новичок
При переходе на 64-разрядный веб-сервер возникла проблема: отрицательное значение, возвращаемое функцией Oracle, отображается как положительное в приложении. СУБД работает на отдельном 64-разрядном сервере.
Пример для воспроизведения:
На 32-разрядном клиенте значение отображается как int(-3007), а на 64-разрядном — как int(4294964289).
В чём может быть причина проблемы и как её можно исправить?
Пример для воспроизведения:
PHP:
$conn = oci_connect(...);
$query = <<<EOL
BEGIN
:result := -3007;
END;
EOL;
$stmt = oci_parse($conn, $query);
oci_bind_by_name($stmt, ':result', $result, -1, SQLT_INT);
oci_execute($stmt);
var_dump($result);
В чём может быть причина проблемы и как её можно исправить?