簡體   English   中英

PDO Ajax更新mysql數據庫

[英]PDO Ajax updating mysql database

我需要此PHP Ajax使用PDO更新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嗎?

誰能告訴我為什么它不能正常運行?

在此先感謝大家!

只需將您的任務分為兩部分:AJAX部分和PDO部分。

首先,請確保您的PDO部件運行良好。 制作一個模擬的$ _POST數組,然后開始使用PDO直接播放此腳本,而無需AJAX。 如果出現問題,請在此處提問。 然后,當您使其恢復工作時,以相同的方式移至AJAX部分-首先,無需PDO,只需將數據發送到服務器並驗證其是否正確即可。

一次解決兩個問題會使事情變得更加困難。 始終將您的任務分解為各個部分,並一一解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM