Нужна помощь с ошибкой в операторе mysql. Я пытаюсь сделать сайт, который будет добавлять, редактировать и удалять данные из базы данных. Когда я ввожу данные с веб-сайта, оператор sql показывает «неопределенное» с данными, которые должны быть изменены.
Я даже не знаю, где искать. Я проверил все операторы SQL, чтобы увидеть, если это было проблемой там.
{"code":"ER_TRUNCATED_WRONG_VALUE_FOR_FIELD","errno":1366,"sqlMessage":"Incorrect integer value: 'undefined' for column 'collegeID' at row 1","sqlState":"HY000","index":0,"sql":"Update College SET collegeName = 'undefined', CoAbbreviation = 'undefined', collegeID = 'undefined'"}
Это полное сообщение об ошибке при редактировании таблицы.
Это код для редактирования колледжа.
editCollege: (req, res) => {
let collegeID = req.params.id;
let collegeName = req.body.collegeName;
let CoAbbreviation = req.body.CoAbbreviation;
// rewrite query later tonight
console.log(collegeID);
//UPDATE College SET collegeName = 'collegeName',
//CoAbbreviation = 'CoAbbreviation'
//WHERE CollegeID = 'CollegeID';
let editCollegeQuery = "Update College SET collegeName = " + "'" + collegeName + "'" + ', ' + "CoAbbreviation = " + "'" + CoAbbreviation + "'" + ', ' + "collegeID = " + "'" + collegeID + "'";
console.log(editCollegeQuery);
db.query(editCollegeQuery, (err, results) => {
if(err){
return res.status(500).send(err);
}
res.redirect('/');
});
},
deleteCollege: (req,res) => {
let collegeID = req.params.id;
let deleteCollegeQuery = 'DELETE FROM College WHERE collegeID = "' + collegeID + '"';
console.log(collegeID);
db.query(deleteCollegeQuery, (err, results) => {
if (err) {
return res.status(500).send(err);
}
res.redirect('/');
});
}
};
Вот эфирные маршруты для приложения
//routes for the app
app.get('/', getHomePage);
app.get('/add', addCollegePage);
app.get('/edit/:id', editCollegePage);
app.get('/delete/:id', deleteCollege);
app.post('/add', addCollege);
app.post('/edit/:id', editCollege);
Здесь есть промежуточное ПО
app.set('port', process.env.port || port);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs'); // configture template engine
app.use(bodyParser.urlencoded({ extended: false}));
app.use(bodyParser.json()); //parse data from client
Код переднего плана для edit-College
<div class="container">
<% if (message) { %>
<p class="text-center text-danger"><%= message %></p>
<% } %>
<% if (College) { %>
<form class="edit-college-form" action="" method="post" enctype="multipart/form-data">
<div class="form-row">
<div class="form-group col-md-4">
<label for="collegeName">College Name</label>
<input type="text" class="form-control" name="collegeName" id="collegeName" value="<%= College.collegeName%>" required>
</div>
<div class="form-group col-md-4">
<label for="CoAbbreviation"> College Abbreviation </label>
<input type="text" class="form-control" name="CoAbbreviation" id="CoAbbreviation" value="<%= College.CoAbbreviation %>" required>
</div>
</div>
</div>
<button type="submit" class="btn btn-success float-right">Update College</button>
</form>
<% } else { %>
<p class="text-center">College Not Found. Go <a href="/add">here</a> to add College.</p>
<% } %>
</div>
</div>
</body>
</html>