抛出错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法
相关的代码:
$update = mysqli_real_escape_string($connection, $update);
// $update = '10'; $id = '4'
$sql = "UPDATE tasks SET `shortDesc` = '".$update."' WHERE `id`=".$id;
if (mysqli_query($connection, $sql) === TRUE) {
echo 1;
} else {
echo mysqli_error($connection);
}
我无法在论坛上找到任何有用的类似错误。 它为什么有效但却抛出错误?
答案 0 :(得分:0)
您发布的代码不应导致错误,因为参数$id
永远不会为空。实际上查看您的错误消息和您的查询,这可能是唯一产生的错误,因为如果两个变量都为空,您将拥有:
UPDATE tasks SET `shortDesc` = '' WHERE `id`=
这将失败,因为id没有值。由于MySQL对引号中的数字没有问题,因此应该消除错误消息:
$sql = "UPDATE tasks SET `shortDesc` = '".$update."' WHERE `id`='".$id."'";
您可以对此进行优化,以便更好地阅读:
$sql = "UPDATE tasks SET `shortDesc` = '$update' WHERE `id`='$id'";
现在,如果变量为空,则查询仍然无效。
由于这是或者是您代码中唯一的错误来源,我认为您的商家信息中缺少某些内容,或者您的代码在缺少参数时被调用了两次?
为了质量保证,您应该在使用它们之前检查$ update和$ id的有效性。至少确保它们不是空的,从那以后你就可以不用电话了。