之前相同的解决方案正在运行,但参数未以JSON格式传递,这是唯一的区别。
我甚至尝试使用不是来自变量的值手动编写SQL查询,并且仍然返回0行受影响。
什么可能导致这个问题?
<?php
$db = new PDO("mysql:host=localhost:3306;dbname=skistatus", "root", "");
$data = json_decode(file_get_contents('php://input'), true);
if ($_SERVER['REQUEST_METHOD'] == "GET") {
$statement = $db->query('SELECT * FROM skilifts');
$statement->setFetchMode(PDO::FETCH_ASSOC);
echo json_encode($statement->fetchAll());
}
if ($_SERVER['REQUEST_METHOD'] == "PUT") {
if($data['secret'] == "fee2c775c18a12b7b52b58129b00e1bd") {
$sql = 'UPDATE skilifts SET `status` = :status WHERE `id` = :id';
$query = $db->prepare($sql);
$query->execute(array(":status"=>$data['status'], ":id"=>$data['id'] ));
$count = $query->rowCount();
if($count == '0'){
echo "Failed";
http_response_code(400);
}
else{
echo "Success";
http_response_code(200);
}
} else {
echo $data['secret']." is not the magic word!";
http_response_code(403);
}
}
?>
答案 0 :(得分:0)
参数id
在将前端传递到后端之前未在前端进行更新。基本上,当SQL查询执行时,具有相同id
值的status
与数据库中的值相同,因此UPDATE
<不会影响任何行/ p>