2 回答
TA贡献2080条经验 获得超4个赞
错误是您返回一个 $result,这仅在使用 select 语句时有效。但是在插入、更新、删除时不需要 $result,$result 不是布尔值,这就是它在 if 语句中不起作用的原因。您应该返回 $stmt 因为并在 if 语句中检查
将您的代码更改为此,它应该可以工作:
protected function unSetArticle($id) {
$conn = $this->connect();
$sql = "UPDATE article SET deleted=1 WHERE row_id=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $id);
$stmt->execute();
return $stmt;
}//Method unSetArticle.
TA贡献1966条经验 获得超4个赞
这段代码在很多层面上都是错误的,但主要问题是方法 showDeleteArticle() 是错误的并且具有误导性。
这种方法根本没有理由。另一个答案被接受的事实证明了这一点。提供的代码总是返回类似true的值,因此 showDeleteArticle() 中的条件变得无用。可以将其重写为
public function showDeleteArticle($id) { echo "Article has successfully been deleted."; }
因为它永远不会进入 else 部分。
更不用说任何控制器都不应该直接脱口而出任何数据,而不是通过视图。至少在 POST 请求之后必须有重定向,而不是输出。
- 2 回答
- 0 关注
- 128 浏览
添加回答
举报