我正在使用郵遞員來測驗我的 api,這是一個發布請求。
當我將請求 url 放入郵遞員時,它應該說 http://localhost:3000/product/1/food/,其中 1 是 :id 在我的代碼中
我想在我的 node.js 中執行這個 sql 陳述句
INSERT INTO food (userid, rating, fooditem) VALUES (?, ?, ?) WHERE productid=?'
productid 是我的 :id
讓我的桌子顯示

foodid 和時間戳是自動遞增的
但它給了我
ER_PARSE_ERROR
我試過使用
UPDATE food
SET userid=? , rating=? , review=?
WHERE productid=?
基于我在這里找到的其他帖子,但是當我這樣做時,我的表格中沒有彈出任何內容,盡管它在我的代碼中不算作錯誤
我該怎么辦?謝謝
uj5u.com熱心網友回復:
您不用于WHERE指定productid列,它應該只是您插入的另一列。
INSERT INTO food (userid, rating, fooditem, productid) VALUES (?, ?, ?, ?)
uj5u.com熱心網友回復:
如果您的列名實際上使用的是數字,我建議您先將其更改為col1, col2 ... 我認為這些只是您發布的快速示例,但以防萬一。
就這INSERT部分而言,這是一個想法:
let col4val = [req.body.col4val]; /*1*/
let cquery = `SELECT * FROM table WHERE col4=?`; /*2*/
db.query(cquery, [col4val], function(err, result) {
if (err) {
return res.status(500).send(err); /*3*/
}
if (result.length > 0) {
res.redirect("/page?Insert=failed") /*4*/
} else {
let col1val = [req.body.col1val]; /*5*/
let col2val = [req.body.col2val];
let col3val = [req.body.col3val];
let iquery = `INSERT INTO table VALUES(?, ?, ?)`; /*6*/
db.query(uquery, [col1val, col2val, col3val], function(err, result) {
if (err) {
return res.status(500).send(err);
}
res.redirect("/page?Insert=success");
})
}
})
}
這是基于我幾年前開發的一個網路應用程式;代碼可能不是你熟悉的東西,但這里重要的是它背后的想法。我會試著分解它:
- 從 Web 應用程式頁面獲取價值。如果
col4您的表中不存在,那么您可以更改為不同的列名。 - 發送一個 MySQL 查詢來檢查該值是否存在。
- 如果查詢有錯誤,則在 Web 應用程式上回傳 MySQL 錯誤訊息。請注意,即使出現錯誤,這也可能不會回傳任何內容,因此您可能想嘗試通過console module輸出錯誤訊息。
- 如果檢查回傳結果,則重定向到一個頁面,說插入失敗(假設您有一個)。您可能可以像顯示彈出視窗那樣作業,而不是重定向到不同的頁面。
- 如果檢查沒有回傳任何內容,那么
else這里將從獲取您要插入的所有值開始。 INSERT使用所需值發送到 MySQL 服務器的查詢。該操作在很大程度上類似于檢查部分,首先回傳錯誤(如果有)然后重定向到成功頁面。
上面的代碼實際上來自我的“更新用戶密碼”模塊,而我的表沒有正確的PRIMARY KEY. 但是,現在我意識到如果我使用PRIMARY KEY. 我不確定我是否因為redirect手術而這樣做。這是您可以嘗試的較短代碼:
let col1val = [req.body.col1val];
let col2val = [req.body.col2val];
let col3val = [req.body.col3val];
let iquery = `INSERT IGNORE INTO table VALUES(?, ?, ?)`;
db.query(uquery, [col1val, col2val, col3val], function(err, result) {
if (err) {
return res.status(500).send(err);
}
res.redirect("/page?Insert=success");
})
也許,PRIMARY KEY在所有三個col1val, col2val, col3val列中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/394811.html
