使用 PHP 删除 SQL 数据库中的记录


Deleting a record in a SQL database using PHP

我已经编写了几页以从数据库中删除记录,但它似乎不起作用。

我有一个网站,用户使用存储在数据库中的正确名称和密码登录,这工作正常。

然后将用户带到管理页面,代码由以下一些内容组成:

<?php
$sql = mysqli_query($con, "SELECT * FROM details INNER JOIN genre ON genre.genreID = details.genreID;") or die(mysqli_error($sql));

while($row = mysqli_fetch_array($sql)) {

  echo '<div class="info-box">
  <img class="image" src='.'"'.$row['image'].'"
  '.'>
  <a class="edit" href="delete.php?id=' . $row["ID"] .'" onclick="return confirm(''Are you sure you want to delete this record?'')">Delete</a>  |

  </div>'; 
} 
mysqli_close($con);
?>

我已经在管理页面上创建了一个带有完整代码的 JS 小提琴......http://jsfiddle.net/n3n4ot4g/

此页面转到删除.php在后台删除记录。 此页面包含以下代码:

<?php
$myID = $_GET['ID'];
echo $myID;

include ('includes/dbconx.php');

//check if a value has been sent
if(isset($myID)){
//MySQL statement to delete record using the unique id variable
mysqli_query($con, "DELETE FROM details WHERE ID = '$myID'") or die ('Error: '.mysqli_error());
}
mysqli_close($con);

header("Location: admin.php");

?>
当我单击删除

链接时,会出现弹出框以确认删除,我单击"是",但随后它将我带到管理员.php其中没有任何内容。 所有记录都将消失。 当我单击左侧面板导航上的"查看记录"时,也会发生这种情况。 我可以返回并再次登录并查看记录,但我尝试删除的记录不会被删除。

我不确定这是HTML还是PHP问题。

我知道JS小提琴不是为PHP设计的,但我找不到替代方案。

更改: mysqli_query($con, "DELETE FROM details WHERE ID = '$myID'") or die ('Error: '.mysqli_error());

自:

mysqli_query($con, "DELETE FROM details WHERE ID = " . $myID) or die ('Error: '.mysqli_error());

通过将$myID放在单引号中,您说它应该按原样获取,因此您的查询正在搜索字面上为"$myID"的 ID,当然它不会找到。

或者,您可以删除单引号而不连接$myID变量,确保查询本身仍用双引号括起来。这意味着变量将被正确处理,并且将使用它的值。

mysqli_query($con, "DELETE FROM details WHERE ID = $myID") or die ('Error: '.mysqli_error());