【发布时间】:2019-05-26 09:06:06
【问题描述】:
我正在尝试将 MySql 表中的美分数保存为浮点数,但数据库错误,例如我保存 0.01,它保存为 0.1!
有可能实现吗?
我的代码;
$return["reward"] = 0.05;
$api->user['balance'] += $return["reward"];
$q = $api->pdo->prepare("UPDATE " . DB_PREFIX . "user
SET
balance = :balance
WHERE
userid = :userid");
$q->bindParam(":balance" , $api->user['balance'] , PDO::PARAM_INT );
$q->bindParam(":userid" , $api->user['userid'] , PDO::PARAM_INT);
balance 列 TYPE 在数据库中浮动。
【问题讨论】:
-
balance列有什么类型? -
@MaximFedorov 类型的浮点数
-
使用
PDO::PARAM_INT将使用整数保存它,所以不确定它是如何输出为 0.1 的。我本来希望是 0 或 1。 -
正如@Curious_Mind 所说,您应该使用
PDO::PARAM_STR,查看此帖子:stackoverflow.com/questions/2718628/pdoparam-for-type-decimal 也许您的数据库配置错误? -
我确实把它改成了
PDO::PARAM_STR还是一样