PDO возвращает числа с запятой в качестве десятичного разделителя - PullRequest
2 голосов
/ 25 ноября 2010

Очевидно, что PDO использует категорию php LC_NUMERIC для форматирования выходных данных с плавающей запятой в соответствии с текущей локалью в наборах результатов.

Это огромный П.И.Т.А. так как мне действительно нужен LC_NUMERIC для форматирования моих чисел, но результаты, поступающие из базы данных, должны всегда использовать точку в качестве десятичного разделителя, иначе мои вычисления будут отключены.

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

Другим вариантом является много манипуляций с локалями, которые я бы предпочел не делать, если только это не является абсолютным последним показателем.

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

Попробуйте PDO :: setAttribute

PDO :: ATTR_STRINGIFY_FETCHES: преобразовывать числовые значения в строки при извлечении.Требуется bool.

будет ложным в этом случае

0 голосов
/ 02 декабря 2010

Похоже, что это ошибка в PHP 5.1.4, мы проверили примечания к выпуску и журналы ошибок на php.net вместе с техническим специалистом нашего хостинг-провайдера и не смогли найти ничего, связанного с этим поведением, затем мы обновились доvps с использованием php 5.2.1 и проблема исчезла.

Это не подтверждено, но, похоже, это ошибка, связанная с конкретной версией php или mysqllib, которую мы использовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...