$q = "UPDATE pages SET body ='{$body}' WHERE id ={$_POST["id"]} ";
$r = mysqli_query($dbc, $q);
if($r){
$message ='<p>Page was updated!</p>';
}
else {
$message = '<p>Page could not be updated because: '.mysqli_error($dbc);
$message .= '<p>'.$q.'</p>';
}
通过这样做,页面显示“页面无法更新,因为:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在第1行附近使用正确的语法
"UPDATE pages SET body ='' WHERE id ="
答案 0 :(得分:2)
UPDATE pages SET body ='' WHERE id =
这表明您的数据不符合您的查询要求。我们无法知道为什么这样你需要做的事情,比如确保提交表单数据,值不为空,定义变量等等。
答案 1 :(得分:0)
像这样写你的代码。始终将变量分开以获得清晰的可读性。
$id = $_POST['id'];
$q = "UPDATE pages SET body ='{$body}' WHERE id ={$id} ";
答案 2 :(得分:-1)
将{$_POST["id"]}
更改为{$_POST['id']}
答案 3 :(得分:-1)
确保您正在发送表单并使用POST方法。
看起来你的POST请求没有发送变量id
。使用浏览器中的元素检查器查看您要发送的内容。
检查您(不)发送内容的好方法是print_r($_POST);
此外,您在查询中使用的是$body
,但是您没有向我们展示填充$body
的代码部分。
修改强>
尝试在打开<form>
标记后直接添加此内容:
<input type="hidden" name="id" value="<?php echo $opened['id'];?>">
并且不要忘记在查询中放回WHERE id ={$_POST["id"]}
。因为我发现您已在粘贴的代码中删除了该部分。
答案 4 :(得分:-1)
根据错误,似乎$ _POST [“id”]为空。 试着用这个:
$q = "UPDATE pages SET body ='" . mysqli_real_escape_string($body) . "' " .
"WHERE id ='".mysqli_real_escape_string($_POST["id"])."'";