我试图将数据库查询导出到 CSV,并且需要使用不同的十进制逗号。在 MySQL 中更改小数点逗号似乎是不可能的,所以我在 PHP 中尝试了:
setlocale(LC_NUMERIC, "cs_CZ");
但似乎所有数据库函数都喜欢mysql_fetch_row
并且mysql_fetch_assoc
正在检索类型的数据,string
而不是double
:
$res = mysql_query("select 50/3");
$row = mysql_fetch_row($res);
var_dump($row); // $row[0] is of type "string"
所以一般来说 PHP 已经没有 type 的数据double
,而只有字符串!
那么是否有一些通用的、干净的方法来指定小数点的输出?
我最终使用转换了字符串,str_replace('.', ',', $row[0])
但这很丑陋,原因有两个:
- 你必须知道哪个字段是类型
double
- 这是一个肮脏的字符串工作。