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

标签 php mysql ajax

我在从数据库中删除行时遇到问题。我尝试绑定(bind)参数(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";

回显并发出警报“已成功删除”语句,但该行实际上并未从数据库中删除。如果我省略bind_param部分并直接在查询中指定id,那么记录将被删除。 帮助!

最佳答案

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

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);
            }
  });

关于php - 使用 PHP 从 mysql 数据库删除行时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27314171/

相关文章:

php - 如何在sql查询中对数据进行排序(根据数据库字段的json格式中存在的值)

javascript - 是否可以有选择地将 Node.js 引入到用普通 PHP/JS/CSS/HTML 构建的 Web 应用程序中?

php - 哪个查询会更优化?

php - 如何使用 php 和 AJAX 绘制实时图表?

javascript - XMLHttpRequest 发送文件请求对于大文件给出 404 错误

php - 如何将表格数据插入 html 页面?

javascript - 修改PHP使用JS/JQuery与MySQL通信

mysql - 查询获取每个客户每周的平均支出

mysql - 这是 MongoDB 用例吗?

jquery - CakePHP 的 AJAX POST 请求导致 400 响应(黑洞)