我正在嘗試從我的數據庫中刪除一條記錄。到目前為止,正如我在查詢字符串參數中看到的那樣,正確的 id 正在傳遞,而且我沒有收到任何錯誤。但是,該行沒有被刪除,我開始認為這只是一個語法錯誤,但我不確定。刪除-like.php<?php$id=isset($_GET['id']) ? $_GET['id'] : die('ERROR: id not found.');if($_POST) {include 'connectPDO.php';try { $query = "DELETE FROM likes WHERE id = ?"; $stmt = $con->prepare($query); $stmt->bindParam(1, $id); $stmt->execute();} catch (PDOException $exception) { die('ERROR: ' . $exception->getMessage());}}這是我調用它的服務文件。論壇服務.ts removeLike(id: string) { return this.http.delete(`${this.baseUrl}/remove-like.php?id=${id}`); }然后這是我在我的組件中調用該函數的部分。主題.component.ts clickDislike() { this.forumService.removeLike(this.dataService.getToken() + 'topic' + this.forumService.getLikeToken()).subscribe(result => { this.ngOnInit(); }) }
1 回答

米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
你永遠不會進入你的條件塊,因為在你的情況下if ($_POST)總是會返回false。實際上,您使用帶有空主體的 http DELETE 請求來調用此端點。
<?php
$id=isset($_GET['id']) ? $_GET['id'] : die('ERROR: id not found.');
include 'connectPDO.php';
try {
$query = "DELETE FROM likes WHERE id = ?";
$stmt = $con->prepare($query);
$stmt->bindParam(1, $id);
$stmt->execute();
} catch (PDOException $exception) {
die('ERROR: ' . $exception->getMessage());
}
如果您想確保使用正確的 HTTP 動詞調用您的端點,請參考此問題,并添加:
if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
// Your code
}
此外,我建議您添加一種安全機制(如果情況并非如此)(例如身份驗證控制),因為刪除行的公開可用端點是一個安全問題。
- 1 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消