Я не могу понять, как избежать возникновения тупиковой ошибки при попытке отправить несколько значений в базу данных mysql. я попытался упорядочить свои значения по id безрезультатно. Я также попытался использовать список списков и json в качестве формата данных. все работает как запланировано, если я отправляю только одно значение.
данные, которые я передаю, выглядят так:
[
{ employee: 'Smith Paul T.',
projectNum: '90668',
phaseName: '090668 Valve Turning Program',
hours: '7',
week: '2020-W01' },
{ employee: 'Smith April T.',
projectNum: '90668',
phaseName: 'Professional Services',
hours: '7',
week: '2020-W01' },
{ employee: 'Smith Patrick T.',
projectNum: '90668',
phaseName: 'Reimbursable Expenses',
hours: '7',
week: '2020-W01' }
]
, и мой метод публикации выглядит так:
router.post('/schedule', (req, res) => {
const path = require('path');
for (var schedule in req.body){
var schedule = JSON.parse(schedule);
console.log(schedule);
for (var x in schedule){
const queryString = 'INSERT INTO schedule (id, employee_id, project_id, project_phase, year_week, hours)
VALUES((SELECT * FROM(SELECT schedule.id
FROM schedule
JOIN employees on employees.id = schedule.employee_id
WHERE employees.Employee=?
AND schedule.project_phase=?
AND schedule.year_week=?)
tbltmp),
(SELECT id
FROM employees
WHERE Employee=?),
(SELECT MIN(pID)
FROM projects
WHERE pNUM = ?
AND pPhase = ?),
?,
?,
?)
ON DUPLICATE
KEY UPDATE hours=?';
pool.query(queryString, [schedule[x].employee, schedule[x].phaseName, schedule[x].week, schedule[x].employee, schedule[x].projectNum, schedule[x].phaseName, schedule[x].phaseName, schedule[x].week, schedule[x].hours, schedule[x].hours], (err, results, fields) => {
if(err) {
console.log('Failed to submit hours: ', err);
res.sendStatus(500);
return;
}
else{
res.json('success');
console.log('Schedule update successfull');
next();
}
});
}
}
res.end();
});
любая помощь с этим будет очень ценится