我在php://输入功能上做错了什么



我当前的问题是我必须创建连接到MySQL数据库的后端API。我的同学找到了一个有关如何创建一个的教程,但它使用了我不熟悉的东西,也无法找到很多文档。

我想知道它的准确工作原理,我将在教程中包括一个使用它的代码块。希望您能帮助我。

到目前为止,我已经尝试了谷歌搜索(没有真正的结果(并问我的老师,但他们似乎没有任何答案可以帮助我。从我发现的内容中,它是一个JSON字符串,就阅读/输出而言。

函数可以从数据库中删除一行,因为您可以看到它使用似乎是JSON API调用的功能。(p.Categorie_id(

  public function delete(){
        $query = "DELETE FROM categorie WHERE Categorie_ID= p.Categorie_ID";
        $stmt = $this->connection->prepare($query);
        $stmt->execute();
        return $stmt;
    }
$p  = array(
      "Object_ID" => $Object_ID,
      "Object_naam" => $Object_naam,
      "Object_merk" => $Object_merk,
      "Object_type" => $Object_type,
      "Object_status" => $Object_status,
      "Categorie_ID" => $Categorie_ID
    );
    array_push($Objects["body"], $p);
  }

上面我在原始代码块中发布了我认为是" p"变量。

<br />
<b>Notice</b>:  Trying to get property of non-object in <b>C:xampphtdocsPHPPHP API_CategoriesentitiesCategoriesdelete.php</b> on line <b>21</b><br />
object(Categories)#3 (4) {
  ["connection":"Categories":private]=>
  object(PDO)#1 (0) {
  }
  ["table_name":"Categories":private]=>
  string(10) "Categories"
  ["Categorie_ID"]=>
  NULL
  ["Categorie_naam"]=>
  NULL
}
NULL
{"message": "category was deleted."}

这是我运行/打开文件时输出的内容。删除后,它确实给出了消息;然而,所有数据均以null返回。我在这里忽略了什么?

我期望删除提到的表的功能(必须查看哪个(,但是它不做或完全返回任何东西。

(注意:如果您想阅读我最初要做的事情,则可以在此处找到完整的源代码:https://www.techiediaries.com/php-rest-api/(

您正在正确读取php://input的数据。问题在于您的SQL查询。要从$p数组传递参数,您需要将参数插入查询并绑定数据。另外,您需要将数组作为参数发送到函数。

// this function takes in a parameter $p 
public function delete(string $Categorie_ID) {
    $query = "DELETE FROM categorie WHERE Categorie_ID = ?";
    $stmt = $this->connection->prepare($query);
    // Pass an element from $p to the execute function to replace the ? placeholder
    $stmt->execute([
        $Categorie_ID
    ]);
    // return $stmt; // there is nothing to return from delete action
}

您可以这样调用函数:

$yourObj->delete($p['Categorie_ID']); // pass the category from the array as an argument

相关内容

最新更新