为了防止sql注入,使用了MySqlParameter进行sql语句拼接,这是其中一段拼接语句,在link语句时出现了问题
sb.Append($" AND a.LoginName LIKE ’%@loginName%'");
param.Add(new MySqlParameter("@loginName", loginName));
它执行的sql是这样的:
AND a.LoginName LIKE '%@loginName%'
@loginName并未被替换,所以模糊查询会去匹配@loginName
修改代码如下:
sb.Append($" AND a.LoginName LIKE @loginName");
//将参数与%进行拼接
var likeLoginName = $"%{loginName}%";
param.Add(new MySqlParameter("@loginName", likeLoginName));