2016-04-21 39 views
0

这是我创建的用于删除条目MySQL数据库的示例删除代码。当我执行此代码时,显示成功消息,但条目不会从数据库中删除。记录保存跟踪在“事件”表“身份证”此示例删除代码不会从数据库中删除项目

<?php 
    require 'dbconnect.php'; 
    session_start(); 
    $id=$_SESSION['id']; 
    $id = "0"; 

    if (!empty($_GET['id'])) { 
     $id = $_REQUEST['id']; 
    } 

    if (!empty($_POST)) { 
     // keep track post values 
     $id = $_POST['id']; 

     // delete data 


     $sql="DELETE * FROM events WHERE events.id='$id'"; //mysqli query 
     $result=mysqli_query($conn,$sql); //connection string and mysqli query variable 


    if($result==true) 
      { 
    echo "<script type='text/javascript'>alert('successfully DELETED!')</script>"; // javascript message for Successful delete 
    echo "<script>setTimeout(\"location.href = 'list_events.php';\",15);</script>"; // return page 

      } 
      else 
      { 
    echo "<script type='text/javascript'>alert('failed to DELETE RETRY!')</script>"; //failed to delete message 
    echo "<script>setTimeout(\"location.href = 'list_events.php';\",15);</script>"; //return page 
      } 
      header("Location: list_events.php"); // header page 

     } 
    ?> 
+0

尝试'删除而不是FROM''DELETE * FROM' – Rickkwa

+0

你确定了'id'你表中是否存在设置?如果元素不存在,DELETE语句不会返回false,我相信.. – scoots

回答

0

使用DELETE FROM代替DELETE * FROM,你可以用下面的命令以提高安全性:

$sql="DELETE FROM events WHERE events.id=?"; 
$stmt = $mysqli->prepare($sql); 
$stmt->bind_param('d',$id); 
/* execute prepared statement */ 
$result = $stmt->execute(); 
1

主键可以使用此

$sql="DELETE FROM events WHERE events.id='{$id}'"; //mysqli query 

为了安全起见。 检查您是否在$ id中获得某些值,并且它也存在于数据库中。

相关问题