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

时间:2015-01-08 11:04:07

标签: php html

我编写了几页来删除数据库中的记录,但它似乎无法正常工作。

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

然后将用户带到管理页面,代码由以下部分组成:

<?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/

此页面将在幕后删除记录中的delete.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");


?>

当我点击删除链接时,会出现弹出框以确认删除,我点击是,但是然后它将我带到admin.php,其中没有任何内容。所有记录都消失了。当我点击&#34;查看记录&#34;在左侧面板导航。我可以返回并再次登录并查看记录,但我试图删除的记录不会被删除。

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

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

1 个答案:

答案 0 :(得分:0)

变化: 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放在单引号中,您说它应该按原样使用,因此您的查询正在搜索字面上的ID&#34; $ myID&#34;这当然不会找到。

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

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