javascript - 尝试使用 Express 将数据插入 MySql 数据库时出错

标签 javascript mysql node.js express

我正在尝试对数据库运行插入查询,但出现以下错误:

code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlMessage:
   '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 \'INSERT INTO house_totals (`currentDate`, `receipts`, `qty`, `pounds`, `ppu`, `gr\' at line 1',
  sqlState: '42000',
  index: 0,
  sql:
   'DELETE FROM house_totals WHERE currentDate = \'077,2020\' AND house_number = \'4\'; INSERT INTO house_totals (`currentDate`, `receipts`, `qty`, `pounds`, `ppu`, `gross_receipts`, `average`, `house_number`) Values (\'077,2020\', \'1 lb Button Box - Organic\', 8765, 0, 1.35, 0, 0, \'4\'), (\'077,2020\', \'1 lb Button in Plastic\', 0, 0, 1.15, 0, 0, \'4\'), (\'077,2020\', \'1 lb Button in tray\', 0, 0, 1.25, 0, 0, \'4\'), (\'077,2020\', \'1 lb Button Plastic - Organic\', 0, 0, 1.35, 0, 0, \'4\'), (\'077,2020\', \'1 lb Button Tray - Organic\', 0, 0, 1.43, 0, 0, \'4\'), (\'077,2020\', \'1 lb Crimini Bulk\', 0, 0, 1.18, 0, 0, \'4\'), (\'077,2020\', \'1 lb Large\', 0, 0, 1.15, 0, 0, \'4\'), (\'077,2020\', \'1 lb Large - Organic\', 0, 0, 1.4, 0, 0, \'4\'), (\'077,2020\', \'1 lb Medium in Box\', 0, 0, 1.22, 0, 0, \'4\'), (\'077,2020\', \'1 lb Medium Plastic\', 0, 0, 1.1, 0, 0, \'4\'), (\'077,2020\', \'1 lb Medium Plastic - Organic\', 0, 0, 1.34, 0, 0, \'4\'), (\'077,2020\', \'10 oz Medium Tray\', 0, 0, 1.04, 0, 0, \'4\'), (\'077,2020\', \'12 oz Medium Black Trays\', 0, 0, 1.1, 0, 0, \'4\'), (\'077,2020\', \'12 oz Medium Blue Trays - Organic\', 0, 0, 1.22, 0, 0, \'4\'), (\'077,2020\', \'16 oz Medium in Trays\', 0, 0, 1.14, 0, 0, \'4\'), (\'077,2020\', \'16oz Medium In Trays - Organic\', 0, 0, 1.39, 0, 0, \'4\'), (\'077,2020\', \'24 oz Large in Blue Trays\', 0, 0, 1.14, 0, 0, \'4\'), (\'077,2020\', \'24oz Baby Bella Trays\', 0, 0, 1.2, 0, 0, \'4\'), (\'077,2020\', \'24oz Large in Black Trays - Organic\', 0, 0, 1.45, 0, 0, \'4\'), (\'077,2020\', \'3 lb Fancy in Box\', 0, 0, 3.3, 0, 0, \'4\'), (\'077,2020\', \'8oz Mediums in Trays - Organic\', 0, 0, 1.39, 0, 0, \'4\'), (\'077,2020\', \'36 Count\', 0, 0, 6, 0, 0, \'4\'), (\'077,2020\', \'4 oz Medium Tray\', 0, 0, 1.27, 0, 0, \'4\'), (\'077,2020\', \'3.5\\" Port\', 0, 0, 1.35, 0, 0, \'4\'), (\'077,2020\', \'4\\" Port\', 0, 0, 1.35, 0, 0, \'4\'), (\'077,2020\', \'42 Count\', 0, 0, 4.85, 0, 0, \'4\'), (\'077,2020\', \'5 lb Crimini\', 0, 0, 6.5, 0, 0, \'4\'), (\'077,2020\', \'5 lb Medium\', 0, 0, 5.5, 0, 0, \'4\'), (\'077,2020\', \'8 oz Baby Bella Trays\', 0, 0, 1.2, 0, 0, \'4\'), (\'077,2020\', \'8 oz Blue Special\', 0, 0, 1.14, 0, 0, \'4\'), (\'077,2020\', \'8 oz Mediums in Trays\', 0, 0, 1.14, 0, 0, \'4\'), (\'077,2020\', \'8oz Mediums in Trays - Organic\', 0, 0, 1.39, 0, 0, \'4\'), (\'077,2020\', \'Opens\', 0, 0, 0.58, 0, 0, \'4\'), (\'077,2020\', \'Opens - Organic\', 0, 0, 1.35, 0, 0, \'4\'), (\'077,2020\', \'Soup\', 0, 0, 0.65, 0, 0, \'4\');'

我的代码是:

...
let sqlData = JSON.parse(req.body.jsonPost);
  //console.log(sqlData)
  var result = [];
  var date = "";
  for (let i = 0; i < sqlData.length; i++) {
    let toPush = [];
    toPush.push(sqlData[i]["currentDate"]);
    date = sqlData[i]["currentDate"];
    toPush.push(sqlData[i]["receipts"]);
    toPush.push(sqlData[i]["qty"]);
    toPush.push(sqlData[i]["pounds"]);
    toPush.push(sqlData[i]["ppu"]);
    toPush.push(sqlData[i]["gross_receipts"]);
    toPush.push(sqlData[i]["average"]);
    //toPush.push(sqlData[i]["houseNumber"])
    toPush.push(req.params.id.toString())

    result.push(toPush);
  }
  queryString = 'DELETE FROM house_totals WHERE currentDate = ? AND house_number = ?; INSERT INTO house_totals (`currentDate`, `receipts`, `qty`, `pounds`, `ppu`, `gross_receipts`, `average`, `house_number`) Values ?;'
  getConnection().query(queryString, [date.toString(), req.params.id.toString(), result], function (err, results, fields) {
...

我已经在 MySql 工作台中运行了该命令,如果我删除斜杠,它执行得很好,但错误在我的 Express 应用程序中仍然存在

我尝试了多种删除正斜杠的方法,但即使没有斜杠,错误仍然存​​在,所以此时我已经没有想法了。任何帮助将不胜感激。

最佳答案

作为单独的查询运行删除和插入。如果它们需要原子性,请将它们放在同一个事务中。 – 丹布莱克

关于javascript - 尝试使用 Express 将数据插入 MySql 数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60731890/

相关文章:

node.js - 使用 ember 和 ember-cli 编辑 Handlebars 模板

javascript - 不知道如何使用 sinon 进行 qunit stub

MySQL如何添加超过24的2次:00 hours

mysql - VB.Net 更新了所有数据未选择的数据

php 表单将 < 符号转换为 <

node.js - Nginx 使用 ng-flow 和 Express (Node.js) 挂起请求

node.js - 如果不存在则创建 S3 存储桶

javascript - Knockoutjs View 定位器?

javascript - 如何在文本框两侧写入错误消息,而不使用 JQuery 中的任何其他标签?

JavaScript:是否有 utils 库?