POST и GET работают в Postmen, но PUT и DELETE не работают - PullRequest
0 голосов
/ 17 января 2020

я пытаюсь выполнить простой Rest api, методы GET и POST работают, но затем, когда я пытаюсь проверить, отображаются ли ошибки PUT и DELETE Undefined Index и c база данных не обновляется, я попытался ввести данные через form-data и raw задницу, а также x-www-form-urlencoded но да ничего
, когда я вручную вводю данные в свой код вместо $_REQUEST, он работает просто отлично, вот мой код:

<?php 
try{
    include 'connection.php';
    $method_name=$_SERVER["REQUEST_METHOD"];
    if($_SERVER["REQUEST_METHOD"])
    {

        switch ($method_name) 
        {
          case 'GET':
            $qry="SELECT * from product";
            $result=mysqli_query($conn, $qry);

            while ($row=mysqli_fetch_row($result))
            {
                $temp_cat[]=array("product_id"=>$row[0],"product_name"=>$row[1],"product_price"=>$row[2],"product_qty"=>$row[3]);
            }

            $data=array("status"=>"1","message"=>"success","result"=>$temp_cat);
            break;

          case 'POST':

            $name=$_REQUEST['product_name'];
            $price=$_REQUEST['product_price'];
            $qty=$_REQUEST['product_qty'];
            $qry="INSERT INTO product(product_name,product_price,product_qty) values('$name','$price','$qty')";
            if(mysqli_query($conn, $qry))
            {
                $data=array("status"=>"1","message"=>"success","result"=>"Product add successfully");
            }
            else{
                $data=array("status"=>"1","message"=>"success","result"=>"Something wrong!!!");
            }
            break;

          case 'PUT':
            $id=$_REQUEST['product_id'];
            $name=$_REQUEST['product_name'];
            $price=$_REQUEST['product_price'];
            $qty=$_REQUEST['product_qty'];
            $qry="UPDATE product SET product_name='".$name."', product_price='".$price."',product_qty='".$qty."' where product_id='".$id."' ";
            if(mysqli_query($conn, $qry))
            {
                $data=array("status"=>"1","message"=>"success","result"=>"Product Update successfully");
            }
            else{
                $data=array("status"=>"1","message"=>"success","result"=>"Something wrong!!!");
            }
            break;

          case 'DELETE':
            $id=$_REQUEST['product_id'];
            $qry="delete from product where product_id='".$id."'";
            if(mysqli_query($conn, $qry))
            {
                $data=array("status"=>"1","message"=>"success","result"=>"Product Update successfully");
            }
            else{
                $data=array("status"=>"1","message"=>"success","result"=>"Something wrong!!!");
            }
            break;
        }
        echo json_encode($data);
    }
    else{
        $data=array("status"=>"0","message"=>"Please enter proper request method !! ");
        echo json_encode($data);
    }

}
catch(Exception $e) {
     echo 'Caught exception: ',  $e->getMessage(), "\n";
}


?>

это скриншот почтальона при попытке УДАЛИТЬ

помните, я новичок в этом, и это буквально мой первый раз, работая с этим!

1 Ответ

0 голосов
/ 17 января 2020

В случае PUT и DELETE вам необходимо получить параметры запроса следующим образом:

$requestParams = array();
parse_str(file_get_contents('php://input'), $requestParams);

Затем вы можете получить доступ к значениям, например, используя $ _GET или $ _POST:

$requestParams['product_id']

Надеюсь, это поможет.

...