我正在尝试使用php从数据库中删除记录,正如我在标题中所说的sql delete查询成功但数据仍然存在。无论如何它引导我到hajj.php,请帮助。
mysqli_query($connection,$sSQL) ;
$db = mysqli_select_db($connection, $database);
if(isset($_GET['id'])) {
$id=$_GET['id'];
$query1=mysqli_query($connection, "delete from hajj where id='$id'");
if($query1) {
header('location: hajj.php');
} else {
echo 'error';
}
}
答案 0 :(得分:1)
我很确定问题是你在id中使用“'”。由于数据库使用整数而不是字符串,因此不要使用“'”。尝试将查询编辑为:
$query1 = mysqli_query($connection, "DELETE FROM hajj WHERE id=$id");
这应该可以解决问题。
另外,我看到你从url $ _GET ['id']中获取了ID,请记住,然后代码将是SQL注入的。你应该使用mysqli_real_escape_string来防止这种情况(在这里阅读:http://php.net/manual/en/mysqli.real-escape-string.php)
示例:
$id = mysqli_real_escape_string($connection,$_GET['id']);
希望它有所帮助!
答案 1 :(得分:0)
where子句中的id设置不正确,你需要正确地连接$ id变量,如下所示:
$query1=mysqli_query($connection, "delete from hajj where id='".$id."'");
答案 2 :(得分:-1)
你需要像这样连接$ id:
"delete from hajj where id=".$id
explenation:当用“单引号”编写带有'$ id'的字符串时“:
'$ id'被解释为一个字符串,因为它在里面是一个“”。
然而,写作:“string with”。$ id:
将评估$ id,然后将结果与字符串
连接起来