在人们可以注册的php / mysql应用程序中,strtolower
用户名然后存储在数据库中以便将来不会出现问题是个好主意吗?因为人们正在使用DiFfeReNt案件,我担心这会在某些问题上产生冲突。
由于
答案 0 :(得分:8)
真的没关系 - MySQL is case insensitive除非你指明安迪,安迪和安迪都会匹配。
警告是整理 - 但是:
默认字符集和 整理是latin1和 latin1_swedish_ci,所以非二进制字符串 比较不区分大小写 默认值。
请注意,如果您使用的是latin1_general_cs
cs
代表区分大小写,那么您的所有查询都会区分大小写!以下是charsets and collation的更多信息。
答案 1 :(得分:1)
如果较小的用户名使您在某些查询中避免冲突(如您所述),那么您可能会遇到一些更大的问题。
您应该清理所有数据库输入,但不需要小写用户名。
答案 2 :(得分:1)
我建议以用户输入的方式存储它,特别是如果你在某处显示它 但是当用户注册一个新的用户名并且您不想允许这样的重复项时,请在保存之前检查不区分大小写。
答案 3 :(得分:0)
任何案例问题都不会导致与查询冲突。
答案 4 :(得分:0)
没有。如果您以任何方式更改用户名,您可以让用户失望。您可以将DB上列的排序规则更改为不区分大小写。
答案 5 :(得分:0)
您应该按照用户输入的方式存储它。
当只比较较低的(user.input)和较低的(database.data)时,你必须提供的是不区分大小写的身份验证。