2017-08-04 1 views
1

このスクリプトを実行すると、IDが存在せず、レコードが影響を受けていない場合でも、常に成功メッセージ"successfully deleted"が返されます。どんな考え?これをどうすれば解決できますか?PHP SLIM DELETE問題は常に成功メッセージを得る

$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().'}}'); 
    } 
}); 
+1

を、それが例外をスローしません。あなたの場合、それは正常に実行され、それは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().'}}'); 
    } 
}); 
0
try{ 
    // Get DB Object 
    $db = new db(); 
    // Connect 
    $db = $db->connect(); 
    $stmt = $db->prepare($sql); 
    $stmt->bindParam(':id', $id); 

    $query=$stmt->execute(); 
    if($query) 
    echo '{"notice": {"text": "successfully deleted"}}' ; 
    else 
    echo '{"notice": {"text": "Some Error Occured"}}' ; 
} catch(PDOException $e){ 
    //echo '{"error": {"text": '.$e->getMessage().'}}'; 
    return $response->withStatus(400)->write('{"error": {"text": '.$e->getMessage().'}}'); 
} 
関連する問題