【问题标题】:ER_PARSE_ERROR after inserting word with apostrophes插入带撇号的单词后出现 ER_PARSE_ERROR
【发布时间】:2018-01-17 08:49:06
【问题描述】:

当我在 HTML 输入中插入一个带有撇号的单词时,我收到此错误

错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查 与您的 MariaDB 服务器版本相对应的手册 在附近使用的语法

例如:插入不带撇号的单词(如“Hello world”)可以成功,我可以在 MySQL 表中看到该行。但是,当我插入“that's”之类的词时,我得到了错误。

我使用 varchar 作为值行。

connection.query("IN­SERT INTO masstoadmin (`title`,`contact`,`­theuser`,`ptime`,`to­user`,`mass_stat`) VALUES ('"+title+"','"+cont­act+"','"+theuser+"'­,'"+ptime+"','"+tuse­r+"','"+nmasso+"')")­;

【问题讨论】:

标签: mysql sql node.js sql-insert


【解决方案1】:

您应该使用占位符,它还可以通过正确转义您传递到查询中的值来防止 SQL 注入:

connection.query("INSERT INTO masstoadmin (`title`,`contact`,`theuser`,`ptime`,`touser`,`mass_stat`) VALUES (?, ?, ?, ?, ?, ?)", [ title, contact, theuser, ptime, tuser, nmasso ], ...)

【讨论】:

  • 我收到此错误 connection.query("INSERT INTO masstoadmin (title,contact,­­theuser,ptime,t­o­­user,mass_stat) VALUES (?,? ,?,?,?,?)", [title,contact,theuser,ptime,tuser,nmasso]); ^ SyntaxError: 无效或意外的令牌
  • @darknight 查看编辑。出于某种原因,您的代码包含破坏代码的软连字符。我删除了它们。
  • 我收到此错误错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行的“INSERT INTO masstoadmin (title,contact,theuser,ptime,to­user,`mass_') 附近使用的正确语法跨度>
  • @darknight 您发布的代码中有更多垃圾字符,请重试。
猜你喜欢
  • 1970-01-01
  • 2014-07-07
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2010-11-14
  • 1970-01-01
相关资源
最近更新 更多