-1

下面的代码用于检查用户是否已存在于数据库中。如果用户存在,则应将用户重定向到失败页面。

我已经尝试了下面的代码,但它不起作用。如果用户名已经存在,则失败部分。

if($Username!="" && $Password!="")
{
    $checkusername = mysql_query("SELECT * FROM members WHERE username='$username'");

    if(mysql_num_rows($checkusername) > 0)
    {           
        header( 'Location: accountfail.php' ) ;
    }                           
    else
    {
        $query=mysql_query("INSERT INTO members (Username,Password) VALUES ('$Username','$Password')");

        header( 'Location: accountcreatesucces.php' ) ;
    }
}

如何测试数据库表中是否存在具有特定值的行?

4

2 回答 2

2
if($Username!="" && $Password!="")
{
    $checkusername = mysql_query("SELECT * FROM members WHERE username='$username'");

变量区分大小写,$username应该$Username在您的选择中。

确保在像这样将它们插入 SQL 字符串之前正确地转义$Usernameand的值,否则可能会导致 SQL 注入问题。$Password更好的是,使用MySQLiPDO获取真正的参数化查询。

于 2013-07-16T10:11:42.913 回答
0

糟糕的逻辑和变量是不一样的。

$Username != ""在使用的查询中执行$username.

PHP 区分大小写。

于 2013-07-16T10:13:19.813 回答