2015-08-17 72 views
1
<?php 
      include "conn.php"; 
      include "session.php"; 
      $name_enterd=$_GET['Name']; 
      $sql = "DELETE FROM myDB.Mynew WHERE firstname='$name_enterd' OR lastname='$name_enterd'"; 
      echo "<br>"; 
      $result=$conn->query($sql); 
      if($result==1) 
      { 
       echo "<br> Data deleted successfully"; 
      } 
      else 
      { 
       echo "No Data Found<br>"; 
      } 
     ?> 

當我第一次運行此代碼時,它通過刪除數據正常工作。但是當我再次運行它時,它仍然給了我相同的答案「數據成功刪除」,即使沒有該值的數據存在。 即$ result仍然得到value1。即使數據庫中沒有記錄,也可以刪除查詢返回值

回答

1

你的代碼應該看起來更像是這樣的:

<?php 
     include "conn.php"; 
     include "session.php"; 
     $name_enterd=$_GET['Name']; 
     $sql = "DELETE FROM myDB.Mynew WHERE firstname='$name_enterd' OR lastname='$name_enterd'"; 
     echo "<br>"; 
     $result=$conn->query($sql); 
     if($result->rowCount() > 0) 
     { 
      echo "<br> Data deleted successfully"; 
     } 
     else 
     { 
      echo "No Data Found<br>"; 
     } 
    ?> 

指定rowCount給你只是受了查詢

0

即使查詢隻影響0行它仍然成功地完成了行數,所以你會希望$結果是1.

0

你正在得到正確的輸出。在執行該查詢時,您要求數據庫檢查是否存在具有該名或姓的數據並將其刪除。即使沒有與之匹配的數據,查詢仍然可以成功運行。

你需要做的使用

$result->rowCount() == 1

,而不是

$result == 1

這真的取決於您要使用的結果是什麼。如果你只是想告訴用戶它已被刪除,使用你有什麼是好的。但是,如果您想讓用戶知道是否有任何內容已被刪除,則需要使用上述建議或其他方法來確定是否屬於這種情況。

+0

由於你建議我做了同樣的事情,但得到這個 致命錯誤:調用一個非對象的成員函數rowCount()。 – Atif

+0

你在得到什麼? – mfisher91

+0

我已經使用了$ result-> num_rows但沒有工作 – Atif

相關問題