我需要幫助,在這個PHP Ajax使用PDO更新mysql數據庫。如果用戶選中複選框,我想更新數據庫。下面是我的代碼:PDO 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嗎?
任何人都可以告訴我爲什麼它不工作,它應該是什麼?
在此先感謝你們!
「它不會工作了」是*不是*錯誤信息,也不是問題描述。 – PeeHaa
呃。我知道,當我檢查複選框時,它不會更新數據庫,我找不到任何錯字或甚至任何錯誤消息。我不知道哪裏出了問題。 – Dr3am3rz
嘗試調試它。在PHP側記錄一些數據,並在'success'回調函數的javascript端提醒'alert'。或者直接使用這些參數調用PHP並回傳數據,以查找其中斷的位置。 –