在一个人们可以注册的php/mysql应用程序中,strtolower
用户名然后存储在数据库中以便将来没有问题是个好主意吗?因为人们正在使用DiFfeReNt案件,我担心这会在某些查询中发生冲突。Strtolower用户名然后将其存储在数据库中是一个好主意吗?
感谢
在一个人们可以注册的php/mysql应用程序中,strtolower
用户名然后存储在数据库中以便将来没有问题是个好主意吗?因为人们正在使用DiFfeReNt案件,我担心这会在某些查询中发生冲突。Strtolower用户名然后将其存储在数据库中是一个好主意吗?
感谢
这真的没关系 - MySQL is case insensitive除非你指定如此Andy,andy和AnDy都会匹配。
需要说明的是整理 - 但是:
默认字符集和校对 是LATIN1和 latin1_swedish_ci,所以非二进制字符串 比较是情况下,由 默认情况下不区分大小写。
当心,如果您使用的latin1_general_cs
看台cs
大小写敏感的,并且所有的疑问将是区分大小写的!这里有更多关于charsets and collation的信息。
没有问题的情况下可能会导致查询任何冲突。
如果使用小写的用户名可以避免在某些查询中发生冲突(如您所述),那么您可能遇到了一些更大的问题。
您应该清理所有数据库输入,但小写用户名应该没有必要。
我会建议以用户输入它的方式存储它,特别是如果你在某处显示它。
但是,当用户注册一个新的用户名,并且你不想允许这样的重复,然后在保存之前检查没有区分大小写。
不,您可以让用户感到失望,如果您以任何方式更改其用户名。您可以更改数据库中列的排序规则,以便不区分大小写。
您应该按照用户输入的方式进行存储。
您必须提供的是不区分大小写的身份验证,比较低(user.input)和低(database.data)时。
我现在没有冲突,但我只想确认之前我建立了整个应用程序:) – Ryan 2010-03-31 20:34:24