我在mysql中有一个字段数据类型VARCHAR。
它必须保存像495/1,495/2
这样的数据,但是当我从PHP运行查询时,它会保存在像495, 247.5
这样的mysql中。所以基本上mysql除了值。
然后我尝试了这个
$sfno = $_POST['sfno']; // i am getting value from HTML form the value is 495/2
$sfno = explode("/",$sfno);
$sfnom = "$sfno[0]"."-"."$sfno[1]";
然后mysql减去这些值并将其保存为494,493
那么如何在mysql数据库中保存算术运算符呢?
答案 0 :(得分:1)
您需要将变量放在查询字符串中的引号之间以防止计算。
$sfnom = "$sfno[0]"."-"."$sfno[1]";
成为(注意字符串中的单引号):
$sfnom = "'$sfno[0]"."-"."$sfno[1]'";
您还需要对其进行URL解码(%2f为/
,否则它将包含2f
而不是/
):
$sfnom = urldecode("'$sfno[0]"."-"."$sfno[1]'");
所以INSERT INTO sfarea(sfareaid,sfno,sftotarea,sfsoldarea) values(2003,495/2,9854,0)
变为:
INSERT INTO sfarea(sfareaid,sfno,sftotarea,sfsoldarea) values(2003,'495/2',9854,0)
只有你要存储算术运算符的方法是字符串,所以你需要它周围的引号。