我想插入有关项目的价格从一个HTML表单到MySQL数据库中的数据。 输入字段定义如下:
<input type="text" name="price" value="0.00"/>
形式发布到其中的数据库的东西的照顾下一个页面。 目前,我只是进入[“价格”] $ _ POST的确切内容到数据库字段,其类型为DECIMAL(4,2)。 我听说这个被存储为一个字符串,但数据库抛出每当我尝试做这样的错误。 是否有字符串和MySQL十进制类型之间转换一个PHP函数? 或者将我必须做一些格式化自己?
你不应该只是“ 输入的确切内容$_POST['...']
”到任何数据库字段:这是一门打开SQL注入。
相反,你必须确保你注入SQL查询的数据实际上是有效的,根据预期的DB数据类型。
对于小数,一个解决方案,在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
}
请注意,我没有把任何报价角落找寻价值;-)