检查数据库中是否存在用户名[不起作用]

时间:2018-10-04 14:23:43

标签: php mysql

我有此代码来检查用户名是否存在于数据库中,否则请插入数据库中。但是,它仍然会插入数据库中。

$username = $_POST['user_name'];

if (isset($_POST['user_email'])){  
    $sql="select user_name, user_email from user_credintals where user_name = $username";
    $result = $db->query($sql);
    if($result->num_rows > 1){
        echo"name already exists";
    }else{
        $sql = "INSERT INTO
            user_credintals(user_name, user_password, user_email , user_level)
            VALUES('" . $db->real_escape_string($_POST['user_name']) . "',
               '" . $db->real_escape_string(sha1($_POST['user_password'])) . "',
               '" . $db->real_escape_string($_POST['user_email']) . "',
                0)";

        $result = $db->query($sql);
        if(!$result){
            echo 'Failed to register user, try again!';
        }
    }

1 个答案:

答案 0 :(得分:0)

您正在检查行数是否大于1。因此这里不算1。您需要检查if($result->num_rows >= 1){的含义,即等于或大于。