node mysql查询语句的坑

2018-06-29  本文已影响0人  笑执清茶

又是被查询语句弄死的一天。。。

项目做一个登陆,一直查不出用户数据,不知道查询语句哪里有问题。

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

上一篇 下一篇

猜你喜欢

热点阅读