PHP MySQL\u return\u rows=echos 1然后是0
我正在做一篇关于PHP处理脚本的AJAX文章。在继续注册之前,我正在检查MySQL是否返回任何行。我遇到的问题是-MySQL快速回显1行,然后回显0并继续注册,即使存在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
$.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是什么意思?是否向该脚本发送多个请求?