如何使用单引号和双引号修复语法错误

时间:2013-09-28 16:30:32

标签: php syntax

我是php的新手,似乎无法找到我所拥有的错误。我正在尝试使用数字更新数据库。我正在使用在同一个表的另一行中有效的复制品。但是,我一直收到一个错误,指出'order = IF(LENGTH('3')= 0,order,'3')附近有语法错误。在第1行WHERE id ='1'。请注意,有单引号然后在id ='1“后双引号。我的代码中有什么问题吗?

if(isset($_POST['nso']))
{
$nso=$_POST['nso'];
$id=$_POST['id'];
$sql="UPDATE series SET order=IF(LENGTH('$nso')=0, order, '$nso') WHERE id='$id'";
$response=mysql_query($sql) or die("Not able to update." .mysql_error());
echo "<meta http-equiv='refresh' content='0;url=DBE.php'>";
}

1 个答案:

答案 0 :(得分:1)

您可以尝试将order放入反引号中,因为它是mysql中的关键字。

UPDATE series SET `order`=IF(LENGTH('$nso')=0, `order`, '$nso') WHERE id='$id'

如果这不起作用,您可以尝试从(最可能)数值的列值周围删除撇号:

ID

UPDATE series SET `order`=IF(LENGTH('$nso')=0, `order`, '$nso') WHERE id=$id

顺序:

UPDATE series SET `order`=IF(LENGTH('$nso')=0, `order`, $nso) WHERE id='$id'

或两者:

UPDATE series SET `order`=IF(LENGTH('$nso')=0, `order`, $nso) WHERE id=$id