【发布时间】:2019-06-24 10:45:14
【问题描述】:
我必须使用按钮从数据库中删除一条记录,但我的删除查询不起作用。使用插入查询将记录成功输入数据库。我按照“kanpurwebD”在 YouTube “如何使用 PHP 和 MySQL 从数据库中删除记录”上提供的 php 代码的确切教程进行操作。教程中的代码工作正常,但我的代码仍然没有删除记录。 (我在数据库中输入了 2 条记录)。 我的代码如下:
<div class="container">
<div class="row">
<form action='add_record.php' method='get'><button type='submit' name='id' value='submit' class='btn btn-default'>ADD RECORD</button><br />
</form>
<table class="table table-hover table-responsive">
<thead>
<tr>
<th>Topic #</th>
<th>Name</th>
<th>Admin ID</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
<?php
echo '<br />';
$query = "SELECT * FROM tb_topic";
$result = $con->query($query);
if(isset($_POST['submitDeleteBtn'])){
$key = $_POST['keyToDelete'];
$check = "Select * from tb_topic where topic_id = '$key'";
if(mysqli_num_rows($con, $check)>0){
$query_delete = mysqli_query($con,"Delete from tb_topic where topic_id = '$key'");
echo 'record deleted';
}
}
while($query_row = mysqli_fetch_array($result)) {?>
<tr>
<td><?php echo $query_row['topic_id'];?></td>
<td><?php echo $query_row['topic_name'];?></td>
<td><?php echo $query_row['aid'];?></td>
<td><input type = 'checkbox' name = 'keyToDelete' value = "<?php echo $query_row['topic_id'];?>" required></td>
<td><input type="submit" name="submitDeleteBtn" class="btn btn-danger"></td>
</tr>
<?php }
?>
</html>
【问题讨论】:
-
您没有用于删除项目的表单,只有几个不相关的输入。顺便说一句,如果您一次只允许删除一条记录,则该复选框似乎没有必要。
-
如果您从教程中获得了上述代码,请停止使用它。此代码对SQL injection attacks 开放。您应该使用参数化的prepared statements,而不是像这样直接在查询中使用完全未转义的用户数据。目前,任何人都可以很容易地删除您的
tb_topic-table 中的所有行。 -
没有人关心 kanpurweb ..... 或任何来源。这是你的问题,你告诉我们你尝试了什么?您只是从某处复制粘贴代码并想要一个解决方案。如果你填写那个XYZ教程的评论框会更好
-
不,我没有复制粘贴代码。这是我自己的代码,只是在教程的帮助下。我尝试使用 href 但它不是首选。我为按钮和删除查询编写了简单的代码,但它也不起作用。