【问题标题】:mysql2 inserting values nodejsmysql2插入值nodejs
【发布时间】:2018-09-04 08:10:38
【问题描述】:

我有这个帖子请求

app.post("/msg", (req, res) => {
  console.log(req.body)
  connection.query('INSERT INTO plans (topic, notes, resources) VALUES 
  (?)', [req.body.topic, req.body.note, req.body.resource],(error, 
  results) => {
     if (error) return res.json({ error: error });

     });
 });

我从中得到了这个错误

"error": {
    "code": "ER_WRONG_VALUE_COUNT_ON_ROW",
    "errno": 1136,
    "sqlState": "21S01",
    "sqlMessage": "Column count doesn't match value count at row 1"
}

这是桌子

CREATE TABLE plans(
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  topic VARCHAR(64) NOT NULL,
  notes VARCHAR(200) NOT NULL,
  resources VARCHAR(200) NOT NULL
 );

请问请求有什么问题?

【问题讨论】:

    标签: javascript node.js mysql2 node-mysql2


    【解决方案1】:

    您必须根据您提供的列值的数量提供问号。

    app.post("/msg", (req, res) => {
      console.log(req.body)
      connection.query('INSERT INTO plans (topic, notes, resources) VALUES 
      (?,?,?)', [req.body.topic, req.body.note, req.body.resource],(error, 
      results) => {
         if (error) return res.json({ error: error });
    
         });
     });
    

    这应该可以工作

    【讨论】:

    • 你为什么放 ?, ?, ?在值之后,然后是逗号,然后将 req.body 放在后面?
    • 因为我们试图在表格行中插入 3 个值。
    • 我的错。我看到你也发表了上面的评论。感谢您的快速回复。
    猜你喜欢
    • 2021-08-12
    • 2020-05-19
    • 2013-03-31
    • 2021-04-25
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多