繁体   English   中英

将行插入数据库时​​的MySQL语法错误

[英]MySQL syntax error when inserting a row into database

我正在尝试使用快速表单中的数据将行发布到mysql数据库中,但始终会出现SQL语法错误

router.post('/add', function(req, res, next) {

  var title = req.body['title'];
  var director = req.body['director'];
  var release = req.body['release'];
  var review = req.body['review'];

  connection.query("INSERT INTO films.filmStore (title, director, review, release) VALUES ('" + title.toString() + "', '" + director.toString() + "', '" + review.toString() + "', '" + release.toString() + "');", function(err, result){
  if(err) throw err;
  console.log("1 record inserted");
  });

  res.redirect('/');
});

但是我得到一个错误

throw err; // Rethrow non-MySQL errors
Error: ER_PARSE_ERROR: 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 'release) VALUES ('Superman', 'Richard Donner', 'One of the best films of all tim' at line 1

我已经尝试了所有可以想到的方法,但是我是SQL的新手,无法弄清与我所看到的其他示例的不同之处。

release是mysql中的保留关键字。 参见: https : //dev.mysql.com/doc/refman/8.0/en/keywords.html

更改该列的名称或使用反引号:

"INSERT INTO films.filmStore (title, director, review, `release`) VALUES (..."

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM