SQL检查行存在的位置

时间:2014-02-16 04:26:20

标签: php mysql

function SQL_QUERY_LOGIN_BY_SCHOOLCODE($con, $username, $opt=""){
    if(is_resource($con)){
        $q = "SELECT * FROM users WHERE username = '$username";
        $result = mysql_query($q);
        $row = mysql_fetch_array($result);
        $count = mysql_num_rows($result);
        if($count == 0) return  $opt="0";
        if($count > 1) return $opt="1";
    }
}

$mysql_login_result = SQL_QUERY_LOGIN_BY_USERNAME(MYSQL_LINK, $form_username, 1);

if($mysql_login_result == 0){
    $message = "User not registered, please register!";
}else{
    $message = "Success!";
}

伙计我有上面的代码来检查用户名是否存在,但是当我输入用户表中存在的用户名时,它仍然回显用户未注册的消息,我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

这部分

if($count == 0) return  $opt="0";
if($count > 1) return $opt="1";

您应该检查计数是否为> 0不是一个,因为只有1行用户名,而不是> 1行;

if($count == 0) return  $opt="0";
if($count > 0) return $opt="1";

也没有必要使用变量$ opt,也不需要使用字符串作为return,只返回一个整数

if($count == 0) return 0;
if($count > 1) return 1;

或简单的一个班轮:

return ($count > 1) 1 : 0;

并查看有关SQL注入的注释等等。