繁体   English   中英

无法使用Node.js更新Mysql数据库

[英]Unable to Update Mysql Database using Node.js

尝试使用Node.js更新Mysql数据库时,我不断收到语法错误。 我正在尝试更新表单。 我不确定我是否有正确的语法。

我的所有其他请求都有效,例如插入表单,从from中检索数据,从表单中删除除更新请求之外的其他请求。 我在下面尝试过两(2)个选项但两个都不起作用。

我究竟做错了什么? 有更新表单的替代方法吗?



        <OPTION 1>
         app.post('/edit',(req,res)=>{ 
         var sql = "UPDATE stores (ID, Station, Address, `Monthly C-Store 
         Sales`, Operator, `Top SKU`) \ VALUES (?, ?, ?, ?, ?, ?)"


         id = req.body.ID;
         station = req.body.Station;
         address = req.body.Address;
         monthlycstoresales = req.body.MonthlyCStoreSales;
         operator = req.body.Operator;
         topsku = req.body.TopSKU;


        db.query(sql, [id, station, address, monthlycstoresales, operator, 
                 topsku], (err, results, field) => {
        if (err) {
        console.log(err);
        res.sendStatus(500);
        return;
        } else{
         res.send(results);
         };
         });
         });
    ``````````````````````````````````````````````````````````````````````````````
          <OPTION 2>
          app.post('/edit',(req,res)=>{ 
          var params = [req.body, req.query.id]

           db.query('UPDATE FROM stores WHERE id = ?', [params],(err, rows, 
                   fields)=>{
             if(!err)
            res.redirect('/alldata');
            //console.log('Update Successful');  
            else
            console.log(err);
            //return;

            });
            });


````````````````````````````````````````````````````````````````````````
CORRECTED UPDATED SYNTAX
       app.post('/edit',(req,res)=>{ 

       var sql ="UPDATE stores SET Station = ?, Address = ?, `Monthly C-Store 
       Sales` = ?, Operator = ?, `Top SKU` = ? WHERE id = ?"


       station = req.body.Station;
       address = req.body.Address;
       monthlycstoresales = req.body.MonthlyCStoreSales;
       operator = req.body.Operator;
       topsku = req.body.TopSKU;
       id = req.body.ID;


       db.query(sql, [station, address, monthlycstoresales, operator, topsku, 
       id], 
      (err, results, field) => {

        if (err) {
        console.log(err);
        res.sendStatus(500);
        return;
        } else{
        res.send(results);
        };
        });
        });
















update语句的语法不正确。 它应该是这样的(当然你需要按相应的顺序绑定值):

UPDATE stores
SET    `Station` = ?,
       `Address` = ?, 
       `Monthly C-Store Sales` = ?,
       `Operator` = ?,
       `Top SKU`=?
WHERE  id = ?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM