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 關注
- 165 瀏覽
添加回答
舉報