使用PHP从mysql数据库中删除行时出错

时间:2014-12-05 10:48:06

标签: php mysql ajax

我在从数据库中删除行时遇到问题。我尝试绑定参数(id),根据该参数必须删除一行。它返回成功消息,表明该行已被删除但该行实际上并未从数据库中删除。 这是我使用ajax调用删除脚本的代码:

<script>
    $("#del").click(function(){
        var id;
        $("input:checked").each(function(){
            id=$(this).parent().parent().children(".id").html();
        });
        var datastring=JSON.stringify(id);
        $.ajax({
            type:'post',
            url:'delete.php',
            data: {data:datastring},
            success: function(data){
                alert(data);
            }
        });
    });
</script>

这是删除脚本(delete.php)

if(isset($_POST["data"]))
{
    $id=$_POST["data"];
    $db=mysqli_connect("localhost","root","","products");
    if($db)
    {
        $query=mysqli_prepare($db,"DELETE FROM product_info WHERE prod_id=?");
        $query->bind_param('i',$id);
        $result=$query->execute(array($id));
        if($result)
            echo "Deleted successfully";
        else
            echo "Error in deletion of product";
        $query->close();
    }
    else
        echo "Error Connecting to DB";
}
else
    echo "POST not set";

声明&#34;已成功删除&#34;回显并发出警报但该行实际上并未从数据库中删除。如果我省略bind_param部分并直接在查询中指定id,则删除该记录。 救命!

1 个答案:

答案 0 :(得分:0)

好的,问题已经解决了。导致问题的陈述是这样的:

var datastring=JSON.stringify(id);

相反,我在ajax调用中做到了这一点

$.ajax({
            type:'post',
            url:'delete.php',
            data: {data:id},  //instead of sending datastring, I sent the id directly
            success: function(data){
                alert(data);
            }
  });