PHP 注册脚本相同的昵称


php register script same nicknames

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

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

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

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

这会在执行相等性检查之前将"昵称"列中的数据转换为小写,并将"PaUl"转换为较低。

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

基本上,如果使用 UCASE() 函数,则将表中的用户名转换为大写(出于查询目的),然后与所需用户名的大写版本进行比较,从而使查询不区分大小写。

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

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

您可以在

SELECT查询中定义它

SELECT * FROM `table` WHERE LOWER(`Nickname`) = LOWER($nickname)

但取决于您的排序规则*_ci区分大小写或_cs区分大小写。如果你有*_ci你没有什么可担心的。

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

然后运行当前查询。

SELECT * FROM users WHERE username = '$_var'