PDO Ajax更新mysql数据库

时间:2012-12-26 03:35:30

标签: php ajax pdo

我需要帮助使用PDO更新这个PHP Ajax更新mysql数据库。如果用户选中该复选框,我想更新数据库。以下是我的代码:

JS:

$('input[name=product_new]').click(function(){

    var chkbox_id = $(this).attr('alt');
    var chkbox_selected = $(this).is(':checked');

    if(chkbox_selected == true)
    {
        chkbox_selected = "checked";
    }
    else
    {
        chkbox_selected = "uncheck";
    }


    $.post({
            url: "../products_listing.php",
            type: "POST",
            data: {product_id: chkbox_id, product_new: chkbox_selected},
            cache: false,
            success: function(){}

           });

});

使用PDO更新数据库的PHP页面:

$id = $_POST['product_id'];
$product_new = $_POST['product_new'];
if(isset($_POST['product_new']))
{
    try
    {
        $query = "UPDATE productinfo SET new_arrival=? WHERE id=?";
        $stmt_new_chkbox = $conn->prepare($query);
        $stmt_new_chkbox->bindParam(1, $product_new, PDO::PARAM_STR);
        $stmt_new_chkbox->bindParam(2, $id, PDO::PARAM_INT);
        $stmt_new_chkbox->execute();
    }
    catch(PDOException $e)
    {
        echo 'ERROR: ' . $e->getMessage();
    }
}

当我使用mysql时它工作但现在我已将其更改为使用PDO,它将不再起作用。我找不到哪里出错了。先谢谢你们。

以下是mysql _:

中的旧代码
$id = mysql_real_escape_string($_POST['product_id']);
$product_new = mysql_real_escape_string($_POST['product_new']);
if(isset($_POST['product_new']))
{
    $upt_new=mysql_query("update products_list set new_arrival='$product_new' where id='$id'");
}

确定!我知道已经有什么问题了。该死的目录路径。我拿出了../它有效!虽然有点奇怪。

因为我的js文件在JS文件夹中,而products_listing.php在js文件夹之外。它不应该是../products_listing.php?

任何人都可以告诉我它为什么不能正常工作吗?

先谢谢你们!

1 个答案:

答案 0 :(得分:0)

将您的任务分为两部分:AJAX部分和PDO部分。

首先确保您的PDO部分运行良好。创建一个模拟$ _POST数组,然后开始使用PDO直接调用此脚本,而不使用AJAX。如果出现问题,请在这里提问。然后,当你恢复工作时,以同样的方式转移到AJAX部分 - 首先,没有PDO,只需将数据发送到服务器并验证它是否正确。

一次解决2个问题会让事情变得更加艰难。始终将您的任务分成不同的部分并逐一解决。