2013-03-14 53 views
2

我相信我的代碼應該沒問題。但我提交表單後無法對數據庫執行INSERT。誰能幫我?ajax在SQL中的第n次返回成功後

我已經嘗試過了警告確定,但在db

,最有可能的,點擊按鈕後,它再次返回到表單並沒有警覺,甚至是錯誤一個也找不到任何INSERT值。

這是我的HTML

<form> 
    <label for="basic">Login Name:</label> 
    <input type="text" name="loginID" id="loginID" value="" data-mini="true" /></br > 
    <label for="basic">Login Password:</label> 
    <input type="password" name="loginPW" id="loginPW" value="" data-mini="true" /></br > 
    <input type="submit" value="Submit "> 
</form> 

這是我的js

$(document).ready(function() 
{ 
    $('form').submit(function(){ 

     $.ajax({ 
      type: 'POST', 
      data: 
      { 
        loginID: $("#loginID").val(), 
        loginPW: $("#loginPW").val() 
      }, 
      url: 'http://mydomain.com/create.php', 
      success: function(data){ 
       alert('Your comment was successfully added'); 
      }, 
      error: function(){ 
       alert('There was an error adding your comment'); 
      } 
     }); 

     return false; 
    }); 
}); 

這是我的PHP

<?php 

include('mysqlConfig.php'); 

$id = mysql_real_escape_string($_POST["loginID"]); 
$pw = mysql_real_escape_string($_POST["loginPW"]); 

$sql="INSERT INTO tbl_user (user_name, password) 
VALUES 
($id,$pw)"; 

if (!mysql_query($sql,$link)) 
{ 
    die('Error: ' . mysql_error()); 
} 
else 
{  
    echo "Comment added"; 
} 

mysql_close($link); 

?> 
+0

您的代碼是否在mysqlConfig.php文件 – 2013-03-14 00:34:59

+0

中建立了與數據庫的連接。我想知道如果網絡出現問題,它應該會提示錯誤信息呢? – HUNG 2013-03-14 00:43:09

回答

0

雖然你真的應該切換到PDO(或mysqli的),並準備語句,這裏的問題是你沒有引用變量,因爲它們是字符串,你需要引用它們:

$sql="INSERT INTO tbl_user (user_name, password) 
     VALUES 
     ('$id','$pw')"; 

您還應該散列和填充您的密碼,並且絕不將它們存儲爲純文本或加密。

+0

@HUNG'mysql_ *'函數被棄用,所以當你更新php時你可能會遇到問題。轉義函數還要求您設置默認字符集以防止sql注入。 – jeroen 2013-03-14 00:58:45

+0

@HUNG php腳本的輸出是什麼?您可以在開發人員工具的網絡選項卡中檢查該功能,或在成功功能中提示「數據」。 – jeroen 2013-03-14 01:00:06

+1

它的工作原理和感謝您的解釋。這真的很有幫助。非常感謝。對於哈希部分,因爲我只是在開始階段,我會在後面的部分做,現在我只想檢查基本功能的工作與否。非常感謝你的幫助 – HUNG 2013-03-14 01:02:05