将字符串转换为mySql DECIMAL类型

时间:2010-03-12 17:00:33

标签: php mysql html string decimal

我正在尝试将有关项目价格的数据从HTML表单插入到mySQL数据库中。输入字段定义如下:

<input type="text" name="price" value="0.00"/>

将表单发布到下一页,其中处理数据库内容。目前我只需将$ _POST ['price']的确切内容输入数据库字段,该字段的类型为DECIMAL(4,2)。我听说这是作为字符串存储的,但每当我尝试这样做时,数据库都会抛出错误。是否有用于在字符串和MySQL DECIMAL类型之间进行转换的PHP函数?或者我必须自己做一些格式化吗?

1 个答案:

答案 0 :(得分:4)

你永远不应该只是“输入$_POST['...'] ”的确切内容到任何数据库字段中:它是为SQL注入打开的一扇门。

相反,您必须根据预期的DB数据类型确保注入SQL查询的数据实际上是有效的。


对于小数,PHP方面的解决方案是使用floatval函数:

$clean_price = floatval($_POST['price']);
$query = "insert into your_table (price, ...) values ($clean_price, ...)"
if (mysql_query($query)) {
    // success
} else {
    echo mysql_error();   // To help, while testing
}

请注意,我没有在值周围添加任何引号; - )