显然,PDO使用php LC_NUMERIC类别根据结果集中的当前区域设置格式化float的输出。
这是一个巨大的P.I.T.a.因为我实际上需要LC数值来格式化我的数字,但是来自数据库的结果应该始终使用点作为小数点分隔符,否则我的计算将被关闭。
任何人都知道是否可以配置PDO,这样就不会使用php语言环境来格式化查询结果中的浮动。
另一个选择是大量的现场杂耍,我不想这样做,除非这是一个绝对的最后一个措施。
尝试 PDO::setAttribute
PDO::ATTR_STRINGIFY_FETCHES:获取时将数值转换为字符串。需要布尔。
在这种情况下是错误的
这似乎是PHP5.1.4中的一个bug,我们和托管提供商的技术人员一起在PHP.net上查看了发行说明和bug日志,找不到与此行为相关的任何内容,然后我们使用PHP5.2.1升级到一个vps,问题消失了。
目前还没有得到证实,但这似乎是一个与我们使用的特定php版本或mysqllib相关的bug。