0

我是 php 新手,似乎找不到我所拥有的错误。我正在尝试使用数字更新数据库。我正在使用在同一张表的另一行中有效的精确副本。但是,我不断收到一条错误消息,指出在第 1 行的 'order=IF(LENGTH('3')=0, order, '3') 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'>";
}
4

1 回答 1

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
于 2013-09-28T17:45:45.417 回答