作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 NodeJs mysql 模块,我想在实际查询密码之前检查帐户是否存在。
这是sql:
let sql = `IF EXISTS (SELECT name FROM users WHERE name='${data.name}') SELECT password FROM users WHERE name='${data.name}'`;
当没有 if 语句并且一旦 IF EXISTS
部分被添加进去时,它工作正常,无论我调整什么,总是得到这样的错误:
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage:
'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...,
sqlState: '42000'
如果有人能帮助我,我将不胜感激!
最佳答案
首先,你的SQL是open sql injection。使用准备好的语句或至少尝试清理输入数据。
请注意,这不是正确的做事方式。您应该简单地检查密码 - 并验证您是否得到任何行:
let sql = 'SELECT password FROM users WHERE name='${data.name}';
然后执行 SQL 并检查是否返回了任何行。如果是,则读取密码,否则该用户名不存在。
关于mysql - 如何在 Node mysql 中使用 IF EXISTS 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56234108/
我是一名优秀的程序员,十分优秀!