问题描述:
在迅睿CMS开发的成绩查询功能中,存在查询条件匹配异常的BUG。
具体表现为:
当后台数据库中某条记录的身份证号设置为“123456789123456789”时,用户在查询时输入末尾数字不同的身份证号(如“123456789123456788”等),甚至输入位数不符的数值(如数字5),仍能查询到该条记录。
尽管后台已将搜索设置为“精确搜索”,但实际查询时并未严格匹配身份证号的完整内容(包括位数和具体数字),导致不符合条件的输入也能返回结果。


查出的问题所在:数据库查询语句后发现身份证号要没引号,变成数字。
解决方法:进phpmyadmin里面将出问题的字段字段创建索引,例如我的:is_number
还有一种解决方法为重构查询,建议直接数据库修改更为方便