Strtolower用户名然后将其存储在数据库中是一个好主意吗?

时间:2010-03-31 20:27:24

标签: php mysql

在人们可以注册的php / mysql应用程序中,strtolower用户名然后存储在数据库中以便将来不会出现问题是个好主意吗?因为人们正在使用DiFfeReNt案件,我担心这会在某些问题上产生冲突。

由于

6 个答案:

答案 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)时,你必须提供的是不区分大小写的身份验证。

相关问题