我正在尝试对数据库运行插入查询,但出现以下错误:
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/