【发布时间】:2015-08-04 02:51:58
【问题描述】:
我接手了一个项目,因为之前的开发人员使用的是 Mysqli,所以我一直坚持使用它。不过我已经改用准备好的语句了。
我想知道处理来自用户的货币价值的最佳方法是什么。当将变量绑定为双精度时,当输入类似于 5.99 时,它可以正常工作,这是预期的。但是我们在这里讨论的是用户的输入,所以我可以想象他们输入 $5.99 或 100,000(使用美元符号或逗号)的情况。仅使用绑定,存储的值最终分别为 0.00 和 100.00。数据库中列类型为十进制(10,2)。
可能有几种不同的方法可以解决此问题,例如阻止用户键入这些字符或从前端进行验证,或者可能在后端进行某种其他形式的数据清理。但我想了解其他人会为这个案子做些什么。我不能让它保持原样,因为我知道有人会忽略这个值不是他们最初输入的值。
感谢任何输入。谢谢!
【问题讨论】:
标签: php mysqli prepared-statement