现象
注册了一个ID Kitty,但是发现使用kitty也能登录,并kitty已不能再注册
分析
检查用户名是否重复是查看mysql user表里面是否已有该用户。
而MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中大小写转换造成了这种现象。
方案
对于相关字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10) binary"。
注册了一个ID Kitty,但是发现使用kitty也能登录,并kitty已不能再注册
检查用户名是否重复是查看mysql user表里面是否已有该用户。
而MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中大小写转换造成了这种现象。
对于相关字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10) binary"。