我是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'>";
}
答案 0 :(得分:1)
您可以尝试将order
放入反引号中,因为它是mysql中的关键字。
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'
UPDATE series SET `order`=IF(LENGTH('$nso')=0, `order`, $nso) WHERE id=$id