首页 > 解决方案 > 节点mysql ER_PARSE_ERROR 1064

问题描述

我在这样的表中插入一行,但它不起作用我在互联网上搜索并尝试了所有解决方案,但对我来说没有运气我不知道我在这里做错了什么

var b = req.body;
mysqlConnection.query(
  'INSERT INTO `users` (`nid`, `name`, `dob`, `gender`) VALUES ?',
   [[
     b.nid,
     b.name,
     b.dob,
     b.gender
    ]],
  (error, results) => {
    if(!error)
    res.status(201).send(result.insertId);
    else
    res.send(error)
  }

);

错误

   "code": "ER_PARSE_ERROR",
    "errno": 1064,
    "sqlMessage": "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '123, 'Alex', '2020-10-30', 'male' at line 1",
    "sqlState": "42000",
    "index": 0,
    "sql": "INSERT INTO `users` (`nid`, `name`, `dob`, `gender`) VALUES 123, 'Alex', '2020-10-30', 'male'"
}

标签: mysqlnode.jsexpress

解决方案


后面有个小括号VALUES,试试这个

mysqlConnection.query(
  'INSERT INTO `users` (`nid`, `name`, `dob`, `gender`) VALUES (?)',
   [[
     b.nid,
     b.name,
     b.dob,
     b.gender
    ]],
  (error, results) => {
    if(!error)
    res.status(201).send(result.insertId);
    else
    res.send(error)
  }
);

推荐阅读