我正在尝试创建一个系统来验证用户的用户名和密码。 我目前在检查用户名时遇到问题...... 如果有人的用户名是Burrito,当我通过查询查看它是否在数据库中时,它不会检查字母的大小写是否正确。 例: 用户名是迈克尔 他们可以输入michael或MiChAeL,它仍然认为它是相同的用户名。
这是我用来检查用户名的内容:
$isValid = mysql_query("SELECT username FROM " . getSQL_Info(3) . " WHERE username = '" . $user . "'");
感谢您的时间和帮助。 此外,如果您发现我的代码有任何问题,如果某些内容可能更好或者没有,请告诉我:)
答案 0 :(得分:3)
您需要检查MySQL编码类型。如果是utf8_general_ci
或latin1_swedish_ci
(或以_ci
结尾的任何内容),则不区分大小写。
您可以通过更改表格编码或使用:
解决此问题SELECT username FROM table WHERE BINARY username = :username
我会推荐这种形式。
相关:How can I make SQL case sensitive string comparison on MySQL?
此外,如果您发现我的代码有任何问题,可能会出现问题 更好或不是,请告诉我:))
mysql_*
函数
答案 1 :(得分:1)
您的问题的解决方案是
SELECT * FROM foo WHERE(BINARY username =“someNaMe”)
答案 2 :(得分:0)
使用Collate比较区分大小写的字符串。以下是MySQL manual
的链接