首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串转换为mySql DECIMAL类型

问将字符串转换为mySql DECIMAL类型
EN

Stack Overflow用户
提问于 2010-03-13 01:00:33
回答 1查看 12.4K关注 0票数 1

我正在尝试将关于商品价格的数据从超文本标记语言表单插入到mySQL数据库中。输入字段定义如下:

代码语言:javascript
复制
<input type="text" name="price" value="0.00"/>

表单被POSTed转到下一页,在该页中数据库内容将得到处理。目前,我只是在数据库字段中输入$_POST‘’price‘的确切内容,它的类型为DECIMAL(4,2)。我听说这是作为字符串存储的,但每当我尝试这样做时,数据库都会抛出一个错误。有没有一个函数可以在字符串和MySQL DECIMAL类型之间进行转换?或者我必须自己进行一些格式化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-13 01:07:17

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

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

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

代码语言:javascript
复制
$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
}

请注意,我没有用引号将值括起来;-)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2434374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档