我有包含[用户名,电子邮件]的表,正在检查它们是否重复其中的任何一个,
但是区分大小写,因此,如果有一个用户,其用户名是“ SelvsterTP”,则如果其他用户键入了该用户,则他将无法注册,但是例如,如果键入“ selvstertp”,则不会遇到任何错误! ,
[我想增加一个名为'UsernameCheck'的列,然后将用户名'lowercase'上传到该列,然后检查该列(与Email相同,]
但是在我看来,这种情况不是最好的代码,所以有什么想法或建议吗?
原代码
$CheckusernameRow =
RowCountDB("Id","users","Username",$Username); //function
to get rows
我的想法
$CheckusernameRow =
RowCountDB("Id","users","UsernameCheck",strtolower($Username));
在该列中创建另一个名为usernameHash
和md5()
的用户名
[当您需要检查用户名时,"select * from my_table where usernameHash = '".md5($username)."'"
可以正常工作
您是否尝试过LOWER()选择器?
$lowerUsername = strtolower($Username);
$query = "SELECT id FROM users WHERE LOWER(Username) LIKE '$lowerUsername'";