检查数据库表中是否存在行不能运行php mysql

时间:2013-07-16 10:08:31

标签: php sql database select

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

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

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' ) ;
    }
}

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

错误的逻辑和变量不一样。

您执行$Username != ""并在查询中使用$username

PHP区分大小写。