我刚刚开始我的web开发之旅,遇到了一些问题。我试图使用以下代码删除和更新mysql中的任何记录。
//deleting a record
Router.get('/delete', (req, res, next)=> {
db.query('DELETE FROM student WHERE student_id = ?',req.body.student_id, (err,rs)=>{
if(err) throw err;
else {
res.redirect('showStudents');
}
});
});
//editing a record
Router.get('/edit',(req, res, next)=>{
db.query('SELECT * FROM student WHERE `student_id`=?',[req.body], (err,rs)=>{
res.render('form',{Students: rs})
});
});
Router.post('/edit',(req, res, next)=>{
var params=[
req.body,
req.query.student_id
]
db.query('UPDATE student SET? WHERE student_id =?',params, (err,rs)=>{
if(!err)
res.redirect('showStudents')
else {
console.log(err);
}
});
});
这是在ejs中的代码安排。
<a href="/delete?student_id= <%= student.student_id %>" onClick=" return confirm ('Are you sure you?')">Delete</a>
<a href="/edit?student_id =<%= student.student_id %>">Edit</a>
运行删除代码,我得到下面这个错误。用编辑代码,没有任何变化。
{ code: 'ER_PARSE_ERROR', errno: 1064, sqlMessage: "你的SQL语法有错误,请检查你的MySQL服务器版本对应的手册,以了解在第1行'?'附近应该使用的正确语法", sqlState: '42000', index: 0, sql: 'DELETE FROM student WHERE student_id = ?'}。
请帮助我。
由于你是通过url中的查询字符串发送参数,你需要用req.query来访问它们,例如: var student_id= req.query.student_id; (当参数是通过表单发送时,使用req.body)