PHP MySQL\u return\u rows=echos 1然后是0

PHP MySQL\u return\u rows=echos 1然后是0,php,ajax,Php,Ajax,我正在做一篇关于PHP处理脚本的AJAX文章。在继续注册之前,我正在检查MySQL是否返回任何行。我遇到的问题是-MySQL快速回显1行,然后回显0并继续注册,即使存在0行。为什么我看到一行被返回,然后很快就纠正了自己 $.ajax({ type: "POST", data: "username="+$(this).attr('username')+"password="+$(this).attr('email')+$(this).attr('pa

我正在做一篇关于PHP处理脚本的AJAX文章。在继续注册之前,我正在检查MySQL是否返回任何行。我遇到的问题是-MySQL快速回显1行,然后回显0并继续注册,即使存在0行。为什么我看到一行被返回,然后很快就纠正了自己

$.ajax({
            type: "POST",
            data: "username="+$(this).attr('username')+"password="+$(this).attr('email')+$(this).attr('password')+$(this).attr('passconf'),
            url: "includes/register.php",
            success: function(msg)
            {   
                alert(data);
                $("#result").data($data); 
            }
        });

    });
PHP代码:

    $res = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                    if (!$res) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}
                    $num = mysql_num_rows($res);
                    echo $num;

您的事件处理程序可能无法阻止默认操作,导致表单提交两次(一次通过ajax,一次通过常规浏览器表单提交)。尝试按如下方式返回false:

$(login_form).click(function() {
    $.ajax({ ... });
    return false;
});
$(login_form).click(function(ev) {
    ev.preventDefault();
    $.ajax({ ... });
});
返回
false
将阻止默认操作并停止冒泡。如果您希望冒泡仍然适用,还可以显式防止默认设置,如下所示:

$(login_form).click(function() {
    $.ajax({ ... });
    return false;
});
$(login_form).click(function(ev) {
    ev.preventDefault();
    $.ajax({ ... });
});

你说快速回音1是什么意思?是否向该脚本发送多个请求?