PHP PDO无法更新

时间:2018-01-21 17:49:34

标签: php mysql pdo

之前相同的解决方案正在运行,但参数未以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);
        }
    }
?>

1 个答案:

答案 0 :(得分:0)

参数id在将前端传递到后端之前未在前端进行更新。基本上,当SQL查询执行时,具有相同id值的status与数据库中的值相同,因此UPDATE <不会影响任何行/ p>