2012-06-03 18 views
2

我用ajax提交表單,處理中使用PHP MySQL中的錯誤引起的阿賈克斯

具有PHP EXC查詢:

$sql = 'SELECT * 
     FROM ' . table. ' 
     WHERE ' . $db -> sql_build_array('SELECT', $data); 
$result = $db -> sql_query($sql); 
$sql = 'INSERT INTO ' . table. ' ' . $db -> sql_build_array('INSERT', $data); 
$db -> sql_query($sql); 

在我上面的代碼,它將運行。但是當'fn'和'ln'在數據庫中相同或已經存在時,則會出現錯誤。但由於使用AJAX即時提交,我留在表單的當前頁面上沒有得到一個錯誤,不知道如果查詢EXC與否。

的問題是,有沒有辦法來讓PHP告訴AJAX查詢EXC過程中發生了什麼樣的錯誤?提前致謝。

+0

你嘗試過在Firebug調試? – Satya

+0

剛做過,但沒有報告錯誤。 – wtsang02

回答

2

什麼你的PHP腳本中迴盪將返回到hr.responseXMLhr.responseText屬性。

趕上你hr.onreadystatechange回調中這兩個值,只要狀態正常,要知道在你的PHP發生了什麼。

hr.onreadystatechange = function() { 
    if (hr.readyState == 4 && (hr.status == 200)) { 
     //do something with hr.responseText 
    } 
} 

我personnaly系統地概括了我的PHP的答案一個通用的XML響應中,有一個自定義狀態:錯誤/ OK /業務錯誤和自定義的消息,所以我知道如何在JavaScript的層用它做什麼。

除此之外,我建議你趕上1062 MySQL錯誤要知道,錯誤是由於已經存在的價值,提高對用戶更友好的消息。

+0

謝謝生病嘗試了一下。 – wtsang02