抛出的错误:
您的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);
}
我在论坛上找不到任何有帮助的类似错误。为什么它工作,但抛出错误?
给定参数$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之前检查它们的有效性。至少要确保它们不是空的,这样你就可以不用打电话了。