如果String值包含逗号(,),则mysql_query不会更新

时间:2012-12-04 17:11:37

标签: php mysql sql-update

为什么我不能用包含逗号(,)的字符串UPDATE字段(类型:longtext)...

$result=mysql_query("UPDATE table_name SET column1=$a WHERE column2=$b AND column3='price'");

适用于

$a="10"; or $a="10.99";
$b="15";

不适用于

$a="10,99"; 
$b="15";

既不适用于:

$a="10,99";
$a=mysql_real_escape_string($a);

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

使用包含逗号的值评估查询字符串时,这是查询: "UPDATE table_name SET column1=10,19 WHERE column2=15 AND column3='price'"; 逗号正在创建一个问题,因为值10,19不是字符串。你需要在变量周围加上引号。如果使用双引号,则需要转义引号。单引号也有效;以下任何一种都可以解决问题:

$result=mysql_query("UPDATE table_name SET column1=\"$a\" WHERE column2=\"$b\" AND column3='price'");

$result=mysql_query("UPDATE table_name SET column1='$a' WHERE column2='$b' AND column3='price'");

答案 1 :(得分:0)

更改(您需要使用'包装字符串或文本类型的字段)

$result=mysql_query("UPDATE table_name SET column1=$a WHERE column2=$b AND column3='price'");

$result=mysql_query("UPDATE table_name SET column1='$a' WHERE column2='$b' AND column3='price'");