[英]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.