Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Angular中http delete函数有问题,没有错误_Php_Mysql_Sql_Angular_Typescript - Fatal编程技术网

Php 在Angular中http delete函数有问题,没有错误

Php 在Angular中http delete函数有问题,没有错误,php,mysql,sql,angular,typescript,Php,Mysql,Sql,Angular,Typescript,我正在尝试从数据库中删除记录。到目前为止,正如我在查询字符串参数中看到的那样,正确的id正在传递,我没有收到任何错误。然而,行没有被删除,我开始认为这只是一个语法错误,但我不确定 remove-like.php <?php $id=isset($_GET['id']) ? $_GET['id'] : die('ERROR: id not found.'); if($_POST) { include 'connectPDO.php'; try { $query = "DELE

我正在尝试从数据库中删除记录。到目前为止,正如我在查询字符串参数中看到的那样,正确的id正在传递,我没有收到任何错误。然而,行没有被删除,我开始认为这只是一个语法错误,但我不确定

remove-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());
}
}
这就是我在组件中调用该函数的部分。
topics.component.ts

  clickDislike() {
    this.forumService.removeLike(this.dataService.getToken() + 'topic' + this.forumService.getLikeToken()).subscribe(result => {
  this.ngOnInit();
    })
  }

您从不在条件块内输入,因为在您的情况下,
if($\u 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());
}
此外,我建议您添加一个安全机制(如果还没有),因为删除行的公共可用端点是一个安全问题

<?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());
}
if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
     // Your code
}