首页 > 解决方案 > 在nodejs中正确插入mysql?

问题描述

我试图让我的 nodejs 插入到我的 mysql 数据库中,但我遇到了解析错误。如果有人可以看到错误,请提供帮助:

    var con = mysql.createConnection({
  host: "XXX",
  user: "XXX",
  password: "XXX",
  database: "XXX"
});
con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql;
  if(req.body.role == "tutor")
  {
     sql = 'INSERT INTO Tutor (sesh_save) VALUES ? ';
  }
  else if(req.body.role == "student")
  {
     sql = 'INSERT INTO Students (sesh_save) VALUES ?'; 
  } 
  var yoy = 'yoy';
  con.query(sql, yoy, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });

错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''yoy'' 附近使用正确的语法

再次感谢...对不起,如果这是一个愚蠢的问题,但 mysql 插入对我来说始终是最难调试的事情。

标签: mysqlnode.js

解决方案


con.query 中的第二个参数在您的情况下需要是一个数组:

在 yoy 变量周围添加数组括号 [ ]

con.query(sql, [yoy], function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
});

如果您不想使用数组括号,或者在值中添加括号 ( ),

用以下内容替换您的 sql 行 -

   if (req.body.role == "tutor") {
     sql = 'INSERT INTO Tutor (sesh_save) VALUES (?) ';
   }
   else if (req.body.role == "student") {
     sql = 'INSERT INTO Students (sesh_save) VALUES (?) '; 
   } 

推荐阅读