尽管列数正确,但行上的值计数错误

wrong value count on row despite having correct number of columns

我正在尝试将一组值插入到我的数据库中,但出现错误 ER_WRONG_VALUE_COUNT_ON_ROW

这是我的架构:

CREATE TABLE reviews (
  id INTEGER AUTO_INCREMENT,
  shoe_id INTEGER,
  review_star INTEGER,
  review_body CHAR (255) NULL DEFAULT NULL,
  review_username CHAR (255) NULL DEFAULT NULL,
  review_date CHAR (255) NULL DEFAULT NULL,
  review_location CHAR (255) NULL DEFAULT NULL,
  upStar INTEGER,
  downStar INTEGER,
  review_title CHAR (255) NULL DEFAULT NULL,
  PRIMARY KEY (id)
);

这是我的查询:

var values = [[1, 1], [2, 2], ['b', 'b'], ['n', 'n'], ['d', 'd'], ['l', 'l'], [3, 3], [4, 4], ['t', 't']]

const testSeed = function() {
  connection.query(`insert into reviews (shoe_id, review_star, review_body, review_username, review_date, review_location, upStar, downStar, review_title) values ?`, [values], function(err) {
    if (err) {
      console.log(err);
    } else {
      console.log('yay it worked')
    }
  })
}

我可以一次提交一个条目的数据就好了,但是如果我尝试一次提交多个值,它就不起作用了。我得到的错误没有意义,因为我的条目数量与我拥有的列数量是正确的。

VALUES 元组的措辞不正确。您当前传递的是 9 行,每行都有两个列值。但是,您想要相反的值,即 2 行 9 列值:

var values = [
                 [1, 2, 'b', 'n', 'd', 'l', 3, 4, 't'],
                 [1, 2, 'b', 'n', 'd', 'l', 3, 4, 't']
             ]

以上内容至少与您的插入语句一致,该语句指定了 9 列而不是 2 列。