mysql-前台登录用户名大小写都能登录问题

今天公司测试了这么一个bug--- 登录时,英文用户名未做大小写校验,也就是说,前台页面登录名无论输入大小写,都能正常登录

经过排查(当然是百度了),发现问题出现的的原因为COLLATE的设置,具体这个如何设置,各个设置的区别,放到下一篇文章中去讲解。

公司数据库设置字符核对规则是utf8_general_ci,这个的意思是忽视大小写,也就是说对于数据库来说,AAA和aaa是一视同仁的。

问题原因找到了,那就只剩解决了,发现普遍都是两种解决办法:

1. 修改查询sql,在字段名前边加binary

    select * from usertable where binary yh_dlm = 'AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h';

2. 修改数据库字段设置

    (1)如果是新创建的表、创表时候这么创建

create table table_name {
    yh_dlm varchar(32) binary;
}

    (2)如果像我们这种,项目已经进行开发甚至上线了,可以这么做

    ALTER TABLE `f_yh` MODIFY COLUMN yh_dlm VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;

下篇文章将具体讲解mysql-COLLATE的一些配置和使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值