Круглая функция PHP 7.0 и модуль MsSQL

228
Daniel Carrasco

У меня есть сервер Debian, который действует как веб-сервер. Недавно мне нужно было установить модуль MsSQL, чтобы использовать Microsoft SQL Server в качестве источника, но после установки я заметил, что функция php round изменила десятичный разделитель от точки к запятой, и это нарушает некоторые сценарии. Может быть, затронуты и другие функции, но я заметил только проблему с функцией округления.

Сразу после отключения модуль снова начинает нормально работать.

Включено:

# php -r 'echo round(85.20, 1);' 85,2 

Инвалид:

# php -r 'echo round(85.20, 1);' 85.2 

Я установил последние модули, используя pecl, и включил модуль, используя файлы conf:

; -configuration for php mssql module ; priority=20 extension=sqlsrv.so   ; -configuration for php mssql module ; priority=20 extension=pdo_sqlsrv.so 

После некоторых поисков в Google я не смог найти способ решить проблему, и с локалями сервера все в порядке. Кто-то говорит, что нужно заменить точки запятыми и наоборот, но поиск по всем круговым функциям по всей веб-странице и добавление функций «заменить» - не лучший способ.

Кто-нибудь знает способ решить эту проблему?

Спасибо!!

1

1 ответ на вопрос

0
Daniel Carrasco

Наконец я нашел проблему. Моя машина настроена с использованием языка es_ES.UTF-8 и выглядит так, что модулю sqlsrv это не нравится. Изменение локали на en_US.UTF-8 заставит его работать.

У меня вопрос, почему модуль меняет работу внутренней функции, но Microsoft ... ничего нового.

Если кто-то знает больше об этом, можно только приветствовать.

Привет.

Похожие вопросы