Php 若数据库中存在用户名,则用户名应唯一,然后返回错误

Php 若数据库中存在用户名,则用户名应唯一,然后返回错误,php,mysql,Php,Mysql,我正在处理一个项目,我想根据用户检查登录凭据。当一个新用户登录时,若数据库中存在用户名,那个么将产生一个错误 username exist 代码: include('connect.php'); $query = mysql_query("SELECT * FROM users WHERE user_name = '". $user_name ."' "); if (mysql_num_rows($query) > 0) { echo 'U

我正在处理一个项目,我想根据用户检查登录凭据。当一个新用户登录时,若数据库中存在用户名,那个么将产生一个错误

username exist 
代码:

include('connect.php'); 

    $query = mysql_query("SELECT * FROM users WHERE user_name = '". $user_name ."' "); 

    if (mysql_num_rows($query) > 0) 
    { 
     echo 'Username already in use please try another.'; 
    }
    else{
    $opt=$obj->addStudent($user_name,$user_pass,$user_email,$user_contact);
    }
}
我想检查忽略区分大小写也

include('connect.php'); 

    $query = mysql_query("SELECT * FROM users WHERE UPPER(user_name) = '". mysql_real_escape_string(strtoupper($user_name)) ."' "); 

    if (mysql_num_rows($query) > 0) 
    { 
     echo 'Username already in use please try another.'; 
    }
    else{
    $opt=$obj->addStudent($user_name,$user_pass,$user_email,$user_contact);
    }
}

这样用户名:XyZ将与XyZ相同

使用更快的代码进行唯一名称测试

include('connect.php'); 

    $query = mysql_query("SELECT `user_name` FROM users WHERE LOWER(user_name) = LOWER(". $user_name .")"); 

    if (mysql_num_rows($query) > 0) 
    { 
     echo 'Username already in use please try another.'; 
    }
    else{
    $opt=$obj->addStudent($user_name,$user_pass,$user_email,$user_contact);
    }

好的…我读了你写的…现在。。。你的问题是什么???阅读有关SQL注入的内容也…-另外,
mysql\uuuu
已成为历史…阅读
mysqli\uu
PDO
这可能有助于在测试之前转换大小写。从逻辑上讲,这个答案是正确的…但您的解决方案非常容易
sql注入
…请注意!!:)我百分之百同意,但我只是回答业主必须申请卫生设施string@NoobEditorinjunction部分解决了如何决定代码中需要什么样的安全性
mysql\uz
仍然不安全,但yes负责回答OP的问题!!:)这“更快”是怎么回事?select*和select列名的毫秒差异决定了是否匹配。