无法删除数据库中的数据,但显示网站的消息已成功

时间:2017-12-04 17:26:07

标签: mysqli

关于标题,我创建了一个网页,使网站管理员可以通过网站删除数据。当我通过该功能时,我发现该消息显示数据已被删除但数据仍然保留在数据库中。代码是:

<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可以帮我检查一下吗?非常感谢你的帮助。谢谢。

2 个答案:

答案 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
    }
}