【发布时间】:2012-06-04 00:59:37
【问题描述】:
我使用它为我商店中的每个产品创建一个唯一代码,
echo base_convert(uniqid(),16,10);
例如,
1403802682572650
我的查询很简单,
$sql = "
SELECT *
FROM page AS p
LEFT JOIN stock AS o
ON o.id = p.page_id
WHERE p.type = ?
AND p.hide != ?
ORDER BY p.backdated_on
";
当我想获取产品代码时,我会这样做,
var_dump($product->code);
但是 PHP 返回 float(1.4038026825726E+15) 而不是 1403802682572650
为什么 PHP 返回 float 而不是 string?我怎样才能得到原来的号码?
或者在从 db 表请求结果之前,我应该在我的 SQL 查询中将数字转换/转换为字符串或 varchar 吗?
编辑: 在我的代码中发现了错误。
例如,我有一行将 json 转换为数组并将字符串转换为浮点数,
echo json_decode("1403802682572650", true); // 1.4038026825726E+15
【问题讨论】:
-
码表字段的数据类型是什么?
-
varchar(255) utf8_general_ci所以应该没问题吧? -
数字太大:php > echo 1403804750765990; // 1.403804750766E+15
标签: php mysql floating-point base-conversion unique-id