关于标题,我创建了一个网页,使网站管理员可以通过网站删除数据。当我通过该功能时,我发现该消息显示数据已被删除但数据仍然保留在数据库中。代码是:
<input name="Product_id" type="text" required="required" class="form-control" id="Product_id" placeholder="Product ID" >
if(isset($_GET['id']))
{
$product_id = $_GET['id'];
$sql = "DELETE FROM product where product_id='$product_id'";
$result = mysqli_query($dbcon,$sql);
if($result){
echo "<script type = 'text/javascript'>alert('Successfully Delete')</script>";
echo"<script>window.open('mProduct.php','_self')</script>";
}
else{
echo "<script type = 'text/javascript'>alert('Delete Failed!')</script>";
}
}
CREATE TABLE `product` (
`product_id` varchar(11) NOT NULL,
`pName` varchar(30) DEFAULT NULL,
`pBrand` varchar(30) DEFAULT NULL,
`description` text,
`pPrice` int(11) DEFAULT NULL,
`quantity` int(11) DEFAULT NULL,
`pImage` blob,
`pImage_name` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我的预期结果是应该在数据库中删除数据。
但是,结果我成功删除了&#39;消息但数据仍保留在我的数据库中。我认为主要问题在于数据库部分,因为我无法将数据输入其中。但是,如果我将product_id更改为int,则可以完成。不幸的是,我的产品ID需要在varchar.Anyone可以帮我检查一下吗?非常感谢你的帮助。谢谢。
答案 0 :(得分:0)
你应该写:
$product_id = $_GET['Product_id'];
在尝试删除之前检查数据库中是否存在该行
答案 1 :(得分:-1)
您必须使用mysqli_affected_rows()来查找受上一次INSERT,UPDATE,REPLACE或DELETE查询影响的行数。
if($result){
if(mysqli_affected_rows($dbcon)>0){
//Success
}
else{
//Failure
}
}