php - Doctrine 从数据库中选择不带小数位的浮点值

标签 php mysql doctrine-orm precision

我正在创建一个像这样的 doctrince 实例

$dbalConfig = new \Doctrine\DBAL\Configuration();
$dbal = \Doctrine\DBAL\DriverManager::getConnection($dbalConn, $dbalConfig);

dbalConfig 只是 mysql 连接设置 + 将字符集设置为 utf-8

当我现在执行查询时:

$sql = "SELECT price FROM products";
$stmt = $dbal->prepare($sql);
$stmt->execute();
$products = $stmt->fetchAll();

并转储结果

var_dump($products);

我得到这样的所有值

[1]=>
array(1) {
["price"]=>
float(17)

但是,在数据库中,该值存储为像这样的 float 17.90

我需要什么才能获得正确格式的数据?我无法将列类型从 float 更改为数据库中的其他内容,因为它不属于我。是否有可能以某种方式获得正确的值?

最佳答案

我解决了这个问题。问题是,我是德国用户。呵呵,这不完全是问题,但它与它有关。

我正在使用的网站将 LC_NUMERIC 设置为 de_DE.UTF-8。将其更改为 en_US.UTF-8 时,它可以正常工作。

setlocale(LC_NUMERIC , 'en_US.UTF-8');

似乎本地化只是“错误”。

但是!有没有办法将美国格式转换为德语格式?因为我真的不认为因为我收到的数据而简单地更改 LC_NUMERIC 是正确的方法,对吗?这听起来像是一个快速而肮脏的解决方案

关于php - Doctrine 从数据库中选择不带小数位的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33286897/

相关文章:

小写的 am/pm 的 MySQL 格式时间

javascript - ajax文件下载 : progress event, 进行下载

php - 使用返回 EMPTY/NULL MYSQL 的子查询进行更新

php - 当我添加一列时,它说 "Column count doesn' t 匹配第 1 行的值计数”

php - 忽略学说中缺失的实体

php - 内存泄漏symfony和独白和控制台

php - Symfony/Doctrine "refers to the owning side field which does not exist"- 但类中存在属性

PHP、MySQL、HTML

C# 'Secure' 通过 MySQL 数据库登录,无需 MySqlConnection

mysql - 使用 RMySQL 的 SQL 插入保护