我正在尝试从NodeJS路由中删除MYSQL表中的一行。当我在MySQL Workbench中运行查询时,查询本身可以正常工作。从节点执行时,该行不会被删除。我在服务器或客户端均未收到任何错误消息。这是代码:
router.post('/bid_delete', async (req, res) => {
let bid_no = req.body['bid_no']
let qrBids= "SET SQL_SAFE_UPDATES = 0; DELETE FROM bids_hdr WHERE
bid_gen_id ='" + bid_no + "';"
await pool.query( qrBids, (err, result) => {
if (err) {
res.send(err)
} else {
res.json({success : true})
}
});
})
谢谢您的指导。
答案 0 :(得分:1)
在单独的查询中执行SET SQL_SAFE_UPDTES = 0;
。
并使用占位符而不是串联将变量替换为查询。
router.post('/bid_delete', async (req, res) => {
let bid_no = req.body['bid_no']
let qrBids= "DELETE FROM bids_hdr WHERE bid_gen_id = ?"
await pool.query( "SET SQL_SAFE_UPDATES = 0");
await pool.query( qrBids, [bid_no], (err, result) => {
if (err) {
res.send(err)
} else {
res.json({success : true})
}
});
})
答案 1 :(得分:0)
尝试按原样传递参数。
let qrBids= "SET SQL_SAFE_UPDATES = 0; DELETE FROM bids_hdr WHERE bid_gen_id = '1';"