我当前的问题是我必须创建一个连接到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:\xampp\htdocs\PHP\PHP API_Categories\entities\Categories\delete.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/)
答案 0 :(得分:0)
您正在正确地从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