PHP SLIM DELETE问题始终获得成功消息

时间:2017-08-04 22:02:42

标签: php mysql slim

当我运行此脚本时,即使id不存在且没有记录受到影响,我也总是会收到成功消息"successfully deleted"。知道为什么吗?我该如何解决这个问题?

$app->post('/api/delete', function(Request $request, Response $response)   {

  $id = $request->getParam('id');

  $sql = "DELETE  FROM test WHERE id=:id";

  try{
      // Get DB Object
      $db = new db();
      // Connect
      $db = $db->connect();
      $stmt = $db->prepare($sql);
      $stmt->bindParam(':id', $id);

      $stmt->execute();
      echo '{"notice": {"text": "successfully deleted"}}' ;

    } catch(PDOException $e){
      //echo '{"error": {"text": '.$e->getMessage().'}}';
      return $response->withStatus(400)->write('{"error": {"text": '.$e->getMessage().'}}');
    }
});

2 个答案:

答案 0 :(得分:1)

需要在那里使用rowCount(): -

$app->post('/api/delete', function(Request $request, Response $response)   {

  $id = $request->getParam('id');

  $sql = "DELETE  FROM test WHERE id=:id";

  try{
      // Get DB Object
      $db = new db();
      // Connect
      $db = $db->connect();
      $stmt = $db->prepare($sql);
      $stmt->bindParam(':id', $id);

      $stmt->execute();
      $count = $stmt->rowCount();
      if($count >0){
        echo '{"notice": {"text": "successfully deleted"}}' ;
      }

    } catch(PDOException $e){
      //echo '{"error": {"text": '.$e->getMessage().'}}';
      return $response->withStatus(400)->write('{"error": {"text": '.$e->getMessage().'}}');
    }
});

答案 1 :(得分:0)

passport.authenticate()