【发布时间】:2020-07-04 08:41:20
【问题描述】:
我正在尝试使用 node-mysql Escaping query values,但是当我尝试将其插入我的 MySQL 查询时,我遇到了错误并且似乎找不到问题所在。我也尝试过以不同的方式布置代码,就像在我链接的 github 示例中看到的那样。
错误:
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 'don\\'t spam!''' at line 1
banReason = 不要垃圾邮件!
var banr = con.escape(banReason)
let sql
sql = `INSERT INTO modlog (senderid, victimid, duration, releasedate, reason) VALUES ('${message.author.id}', '${user}', '${timeCode}', '${moment().add(timeValue, timeType)}', '${banr}'`
con.query(sql)
【问题讨论】:
-
使用带参数的准备好的语句,这可以解决您的问题并保护您免受 sql 注入。见stackoverflow.com/questions/60174/…
-
我已经看到了,但我不知道如何在节点中执行此操作,因为我相信那是针对 PHP 的?还是我感到困惑(我不是一个很好的程序员,因为我只是把它作为一种爱好)
-
对不起,习惯的力量,这是链接stackoverflow.com/questions/15778572/…
-
没关系,但这只是将我带到我在问题中链接的同一个 GitHub 页面。我已经在 node-MySQL 文档中尝试了 con.escape 和 ?但两者都给出了我上面显示的相同错误?
-
你不应该逃避,这不是我试图向你展示的 stackoverflow.com/a/15779796/5193536 你看到 INSERT INTO 帖子集了吗?重要的部分是问号。
标签: mysql node.js node-mysql