从Mysqli中删除所选ID

时间:2016-06-09 20:50:48

标签: php mysql mysqli

我的index.php页面上有一个评论部分。 (就像我在这里显示的那样)我有一个删除链接,可以将您发送到删除页面。我希望能够在单击时删除该特定ID。 index.php

 <div class='commentnest'>
                <p id='id'> ".$row['id']."</p>
                <p id='user'> ".$row['user'].":</p>
                <p id='comment'>".$row['usercomment']." </p>
                <p id='time'>".$row['timestamp']."</p>
                <a href='delete.php?=".$row['id']."'>Delete</a>
        </div>

delete.php页面

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "DELETE FROM commenttable WHERE id=id";
if (mysqli_query($conn, $sql)) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
?> 

每当我在那里发送特定评论时,它都会删除所有评论。我知道这是因为我没有说明选择哪个ID,但我很难搞清楚。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

删除所有记录,因为除非id为NULL,否则id=id将始终为true。您需要从HTML中正确传递它:

<a href='delete.php?id=".$row['id']."'>Delete</a>

然后在查询中正确使用它:

$sql = "DELETE FROM commenttable WHERE 
  id='".mysqli_escape_string($conn,$_REQUEST["id"])."'" ;

如果id总是一个整数,你可以写得更简单:

$sql = "DELETE FROM commenttable WHERE 
  id=".(int)$_REQUEST["id"]);