我的nodejs代碼...
app.post('/src/grades-form', function(req, res){
var daa = req.body.daa;
var os = req.body.os;
var dldm = req.body.dldm;
var ptrp = req.body.ptrp;
var bhr = req.body.bhr;
var prn = req.query.prn;
var sql = "INSERT INTO grades (daa, os, dldm, ptrp, bhr) VALUES ('" daa "','" os "','" dldm "','" ptrp "','" bhr "') WHERE prn = ?";
connection.query(sql, [prn], function(error, results){
if(error) throw error;
res.send(`Data stored successfully !!<br><a href="/src/dashboard-admin">Return to dashboard.</a>`);
});
});
我得到的錯誤...
Error: ER_PARSE_ERROR: 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 'WHERE prn = '1'' at line 1
我該如何克服它?如果這還不夠,我會提供更多資訊...謝謝
uj5u.com熱心網友回復:
您可以做的是SELECT檢查該行是否存在于資料庫中,如果存在則執行更新,否則插入一個新行:
app.post('/src/grades-form', function (req, res) {
const { daa, os, dldm, ptrp, bhr } = req.body;
var prn = req.query.prn;
const sqlSelect = 'SELECT * FROM grades WHERE prn = ?';
connection.query(sqlSelect, [prn], (err, result) => {
if (err) throw err;
if (result.length === 0) {
// Not found, insert new value
var sqlInsert =
'INSERT INTO grades (daa, os, dldm, ptrp, bhr) VALUES (?, ?, ?, ?, ?)';
connection.query(
sqlInsert,
[daa, os, dldm, ptrp, bhr],
function (error, results) {
if (error) throw error;
res.send(
`Data inserted successfully !!<br><a href="/src/dashboard-admin">Return to dashboard.</a>`
);
}
);
} else {
// Value is present, update existing one
var sqlUpdate =
'UPDATE grades SET daa = ?, os = ?, dldm = ?, ptrp = ?, bhr = ? WHERE prn = ?';
connection.query(
sqlUpdate,
[daa, os, dldm, ptrp, bhr, prn],
function (error, results) {
if (error) throw error;
res.send(
`Data updated successfully !!<br><a href="/src/dashboard-admin">Return to dashboard.</a>`
);
}
);
}
});
});
uj5u.com熱心網友回復:
該INSERT INTO陳述句不能有WHERE子句。
如果您嘗試更新現有行,請使用:
UPDATE grades SET daa=value, os=value, etc=value WHERE prn = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491267.html
