关于使用nodejs的mysql查询时碰到的坑

今天在编写登录模块时,碰到一个隐蔽的坑,故记录一番

在使用Node.js的mysql模块的query方法时,查询语句使用了

`select password from login where name=${name}`

注:name为传入的一个字符串

而非传统的

'select password from login where name=' + name

当然,这个不是这个坑触发的关键,关键在于,我以为JavaScript的字符串会自行在外部包裹一个双引号或单引号,然而事实上并非如此

当我在${name}外包裹一层""时,

`select password from login where name="${name}"`

进行查询后,结果就正常了。

之后又观察了一下日志中的错误信息,才发现我以为日志提示的是在该列中查找不到name变量,事实上其提示的是查找不到列名为name的列。。

posted @ 2019-04-06 13:54  FreezeNow  阅读(678)  评论(0编辑  收藏  举报