2017-06-21 2 views
-1

Je peux supprimer des URL de ma table SQL en utilisant leur ID unique. Cependant, si je devais entrer un identifiant qui n'existe pas, il est toujours écrit "Suppression réussie". Je ne pense pas que ce soit une erreur avec le recaptcha. Par exemple, lorsque j'entre l'ID '201', un ID qui n'existe pas encore dans la base de données, il est toujours écrit "La suppression a réussi". Quelle est la manière de résoudre ceci?Supprimer de SQL avec PHP Instruction se produit toujours même avec un ID inexistant

<?php 
if(isset($_POST['delete_btn'])) 
{ 
     $googleurl = 'https://www.google.com/recaptcha/api/siteverify'; 
     $privatekey = "Intentionally not shown :')"; 

     $response = file_get_contents($googleurl."?secret=".$privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']); 
     $data = json_decode($response); 

    if(isset($data->success) AND $data->success==true) 
    { 
    $query = $con->prepare("DELETE FROM phishurls where id=?"); 
    $id = $_POST["id"]; 
    $query->bind_param("i", $id); 
    if ($query->execute()){ //execute query 
     echo '<script type="text/javascript"> alert("URL has been deleted!")</script>'; //if deletion from database is successful 
    }else{ 
     echo '<script type="text/javascript"> alert("Error in deletion ")</script>'; //if deletion from database is unsuccessful 
    } 
    } 
    else{ 
    echo '<script type="text/javascript"> alert("Please complete the recaptcha!")</script>'; 
     } 
} 
?> 
+2

'utilisation mysqli_affected_rows' - ​​si elle est égale à zéro alors ne pas afficher un message de réussite – RamRaider

+0

Vérifiez la rowcount effectuée – Jens

Répondre

1

mysqli_affected_rows ~ Renvoie le nombre de lignes affectées par la dernière INSERT, UPDATE, ou DELETE requête REPLACE.

Vous pouvez utiliser la valeur retournée par mysqli_affected_rows pour effectuer un test logique et agir en conséquence

<?php 
    if(isset($_POST['delete_btn'])){ 
     $googleurl = 'https://www.google.com/recaptcha/api/siteverify'; 
     $privatekey = "Intentionally not shown :')"; 

     $response = file_get_contents($googleurl."?secret=".$privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']); 
     $data = json_decode($response); 

     if(isset($data->success) AND $data->success==true){ 
      $query = $con->prepare("DELETE FROM phishurls where id=?"); 
      $id = $_POST["id"]; 
      $query->bind_param("i", $id); 

      $result = $query->execute(); 
      $affected = $con->affected_rows; 


      if ($result && $affected==1){ //execute query 
       echo '<script type="text/javascript"> alert("URL has been deleted!")</script>'; //if deletion from database is successful 
      }else{ 
       echo '<script type="text/javascript"> alert("Error in deletion ")</script>'; //if deletion from database is unsuccessful 
      } 
     } 
     else{ 
      echo '<script type="text/javascript"> alert("Please complete the recaptcha!")</script>'; 
     } 
    } 
?>