我有一個JavaScript的循環,發送數組到ajax頁面來更新mysql數據庫。ajax返回成功,但MySQL數據庫未更新
我贊同結果回到原來的頁面,它的回聲是成功的,但是當我檢查數據庫沒有發生任何變化
我的JavaScript的for循環發送陣列
for(var m=0; m<array.length; m++){
$.post("update_page_positions.php",{page_ref:array[m][0], ref:array[m][12], menu_pos:array[m][1], sub_menu_pos:array[m][2], top_menu:array[m][3], pagelink:array[m][4], indexpage:array[m][5], hidden:array[m][6], page_title:array[m][7], page_desc:array[m][8], page_keywords:array[m][9], page_name:array[m][10], deletedpage:array[m][11]},
function(data,status){
alert("data="+data+" status="+status);
});
這裏是PHP AJAX頁面更新數據庫
<?
include("connect.php");
$ref = $_POST['ref'];
$page_ref = $_POST['page_ref'];
$menu_pos = $_POST['menu_pos'];
$sub_menu_pos = $_POST['sub_menu_pos'];
$top_menu = $_POST['top_menu'];
$indexpage = $_POST['indexpage'];
$page_name = $_POST['page_name'];
$page_title = $_POST['page_title'];
$page_desc = $_POST['page_desc'];
$page_keywords = $_POST['page_keywords'];
$hidden = $_POST['hidden'];
$pagelink = $_POST['pagelink'];
$deletedpage = $_POST['deletedpage'];
$query = mysql_query("SELECT * FROM pages WHERE ref='$ref' AND page_ref='$page_ref'");
if(mysql_num_rows($query)==0){
mysql_query("INSERT INTO pages(page_ref, ref, page_name, menu_pos, sub_menu_pos, top_menu, link, indexpage) VALUES('$page_ref','$ref','$page_name','$menu_pos','$sub_menu_pos','$top_menu','$pagelink','$indexpage')");
}
if($deletedpage=="1"){
mysql_query("DELETE FROM pages WHERE ref='$ref' AND page_ref='$page_ref'");
mysql_query("DELETE FROM site_content WHERE ref='$ref' AND page_ref='$page_ref'");
}
else{
if(mysql_query("UPDATE pages SET menu_pos='$menu_pos', sub_menu_pos='$sub_menu_pos', top_menu='$top_menu', indexpage='$indexpage', page_name='$page_name', page_title='$page_title', desc1='$page_desc', keywords_list='$page_keywords', hidden='$hidden', link='$pagelink' WHERE ref='$ref' AND page_ref='$page_ref'")){
echo "updated!";
} else{
echo "error";
}
}
?>
的插入和刪除功能都很好,但UPDATE返回成功語句,但不更新數據庫。
任何人都可以看到什麼問題是?
你可以仔細檢查一下你使用的是同一個數據庫嗎? – Halcyon
一旦你解決了你的問題,你會很好的看待清理你的數據:http://stackoverflow.com/questions/129677/whats-the-best-method-for-sanitizing-user-input-with -php –
代碼中存在一個基本問題:您可以從循環中激發多個AJAX調用。由於AJAX調用的異步性質可能導致各種不可預知的問題。你應該重寫你的代碼,使它成爲一個傳遞給整個陣列的AJAX調用。 – ciruvan