我在PHP中有一个用户名检查,当'username'已经存在时,每当有人输入值'username2'时,它返回它已经被占用了。
include 'connect.php';
$username = $_POST['r_username'];
$password = $_POST['r_password'];
$email = $_POST['r_email'];
$qry = "SELECT * FROM users WHERE 'username' = '$username'";
if(mysql_query($qry) != ''){
echo "<script type='text/javascript'>
alert('This username has already been taken!');
window.location = 'register.php';
</script>";
}else{...
谢谢你的帮助!
$qry = "SELECT * FROM users WHERE 'username' = '$username'";
我不太了解php或MySql,但只是想问field_name是否应该是'username'或没有引号。可能是它把它作为值而不是column_name。我不确定
您使用mysql_query()
不正确。它返回一个在其他函数中使用的资源。
阅读手册:http://php.net/manual/en/function.mysql-query.php
$query_response = mysql_query($qry)
if (mysql_num_rows($query_response) > 0) {
echo "<script type='text/javascript'>
alert('This username has already been taken!');
window.location = 'register.php';
</script>";
}
else {
echo 'This username has not been taken yet. Please, proceed';
}
看一下mysql_query返回什么。您的条件(mysql_query($qry) != ''
)将始终是true
另外,在查询中使用反号而不是撇号(')来括起列名。现在你比较的$username字符串是字符串username
,而不是username
列。
"SELECT * FROM users WHERE `username` = '".mysql_real_escape_string($username)."'";