又是被查询语句弄死的一天。。。
项目做一个登陆,一直查不出用户数据,不知道查询语句哪里有问题。
var userName = req.param('userName') // 获取前台传过来的userName值
1.let sql = `select * from user where userName = ${userName} ` //查不到
2. let sql = 'select * from user where userName = userName' //查不到
3. let sql = 'select * from user where userName = "' + userName + '"' //查到了
4. let sql = 'select * from user where userName = ?'
pool.query(sql,[userName],(err, result) => {} //查到了。。。
总结:前端传来的数据如果是字符串放到sql语句中需要拼接字符串,但拼接字符串比较繁琐容易拼错,二是容易造成sql注入攻击。建议使用上述第4种查询方式,也就是占位符注入查询的查询方式。
参考:https://www.jb51.net/article/107441.htm