PDO 返回以逗号作为小数点分隔符的浮点数
显然,PDO 使用 php LC_NUMERIC 类别根据结果集中的当前区域设置来格式化浮点数的输出。
这是一个巨大的 PITA,因为我实际上需要 LC_NUMERIC 来格式化我的数字,但来自数据库的结果应始终使用点作为小数分隔符,否则我的计算将失败。
任何人都知道是否可以配置 PDO,这样它就不会使用 php 语言环境来格式化查询结果中的浮点数。
另一种选择是大量的语言环境杂耍,我宁愿不这样做,除非这是绝对的最后措施。
Apparently PDO uses the php LC_NUMERIC category to format the output of floats according to the current locale in the resultsets.
This is a huge P.I.T.A. since i actually need the LC_NUMERIC to format my numbers but the results coming from the database should at all times be using the dot as decimal separator, else my calculations will be off.
Anyone has an idea if it's possible to configure PDO so it won't be using the php locale to format floats in query results.
Another option is a lot of locale juggling which i would rather not do, unless it's an absolute last measure.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试 PDO::setAttribute
在这种情况下将为假
Try PDO::setAttribute
will be false in this case
这似乎是 PHP 5.1.4 中的一个错误,我们与我们的托管提供商的技术人员一起检查了 php.net 上的发行说明和错误日志,但找不到与此行为相关的任何内容,然后我们使用php 5.2.1 问题就消失了。
尚未确认,但它似乎是与我们使用的特定 php 版本或 mysqllib 相关的错误。
It appears to be a bug in PHP 5.1.4, we've checked release notes and buglogs on php.net along with a technician from our hosting provider and couldn't find anything related to this behaviour, then we upgraded to a vps using php 5.2.1 and the problem disappeared.
It's not confirmed but it appears to be a bug related the the specific php version or mysqllib we were using.