php注册脚本相同的昵称

时间:2012-08-17 13:37:00

标签: php letters

我想知道如何检查我的数据库中是否存在登录信息。此刻我正在使用mysql_num_rows(),但两个小时前我意识到这对我的网站来说不安全,因为如果我注册昵称:保罗和我的朋友用昵称注册:PauL,我的网站让我们注册这些昵称...我不知道如何检查单词是否等于同一个单词只是不同的字母......

5 个答案:

答案 0 :(得分:1)

假设你的意思是大写和小写的混合。 例如,paul,Paul,PAUL,pAUL应该在数据库中视为单个名称。

然后,您应该使用此sql查询来检查名称是否已存在:

SELECT * FROM table1 WHERE LOWER(table1.nickname) = LOWER('PaUl')

这会将“nickname”列中的数据转换为小写,并在执行相等性检查之前将“PaUl”转换为lower。

答案 1 :(得分:0)

SELECT whatever FROM users WHERE UCASE(username) = 'USERNAMEINUPPERCASE';

基本上,如果你使用UCASE()函数,你将表中的用户名转换(为了查询的目的)为大写,然后比较你想要的大写版本,使你的查询案例不敏感的。

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

答案 2 :(得分:0)

在进行比较之前,请对两个变量使用函数strtolower()

答案 3 :(得分:0)

您可以在SELECT查询

中定义该内容
SELECT * FROM `table` WHERE LOWER(`Nickname`) = LOWER($nickname)

但取决于您的排序规则*_ci表示不区分大小写,_cs表示区分大小写。如果您有*_ci,则无需担心。

答案 4 :(得分:0)

首先,用户名应该是唯一的,不区分大小写;将用户名的Collat​​ion字段设置为数据库中的utf8_unicode_ci或utf8_general_ci。

然后运行您当前的查询。

SELECT * FROM users WHERE username = '$_var'