将字符串转换到MySQL DECIMAL类型(Converting a string to a my

2019-09-28 17:31发布

我想插入有关项目的价格从一个HTML表单到MySQL数据库中的数据。 输入字段定义如下:

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

形式发布到其中的数据库的东西的照顾下一个页面。 目前,我只是进入[“价格”] $ _ POST的确切内容到数据库字段,其类型为DECIMAL(4,2)。 我听说这个被存储为一个字符串,但数据库抛出每当我尝试做这样的错误。 是否有字符串和MySQL十进制类型之间转换一个PHP函数? 或者将我必须做一些格式化自己?

Answer 1:

你不应该只是“ 输入的确切内容$_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
}

请注意,我没有把任何报价角落找寻价值;-)



文章来源: Converting a string to a mySql DECIMAL type