ajax在SQL中执行第n次操作后返回成功


ajax return success after nth did in SQL

我相信我的代码应该没问题。但我不能执行INSERT到数据库后,我提交的形式。有人能帮我吗?

我已经尝试过警报ok,但无法在数据库中找到任何人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);
?>

虽然你真的应该切换到PDO(或mysqli)和预处理语句,这里的问题是你没有引用变量,因为它们是字符串,你需要引用它们:

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

你也应该散列和盐你的密码,永远不要将它们存储为纯文本或加密。