其他问题和答案说,如果你想转义和存储浮动与PDO,你应该使用字符串转义.(PDO::PARAM_STR).
但是,在将其存储到数据库(MySQL)中的浮动列中时,通过PDO作为字符串转义浮点数真的安全吗?这两种浮标“兼容”吗?我是否应该在PHP /或MySQL中预先验证浮点数,即使它实际上不是浮点表示(而是一些随机字符串),它也会以某种方式将字符串转换成浮点数?
发布于 2013-12-02 10:48:14
就SQL注入而言,这样做是安全的:
$stmt->bindValue('foo', 1.23456, PDO::PARAM_STR);因为这对于任何值都是安全的,不管它的类型如何。
在float MySQL列中存储字符串也是“安全的”。您只能将float存储在float列中,MySQL将根据其转换规则将接收到的任何值强制转换为float。这可能触发或不触发某些错误或警告,但字符串→浮点转换非常直接,不应引起任何问题。
在安全方面都是“安全”的。
如果您的浮点数实际上是一个浮点数,那么它对值也是安全的。它只是作为一个字符串被传输,但是值本身将被传输。使用float→string→float强制转换时可能会出现微小的舍入错误,因为您必须始终考虑浮点数。
https://stackoverflow.com/questions/20326242
复制相似问题