Mysql 为什么更新查询在此函数中不起作用?

Mysql 为什么更新查询在此函数中不起作用?,mysql,sql,node.js,express,Mysql,Sql,Node.js,Express,我想在我的代码中切换公司的激活状态。因此,首先我获取激活状态,切换它,然后启动更新查询。但这表明con.query1()不是一个函数 我检查了所有可能的错误,但还是没能找到 我在很多网站上搜索过,但上面说会有拼写错误 var val; app.post("/edit/company", (req, res) => { let comid = req.body.comid; let sql = "SELECT is_active from tblcompany where cid='

我想在我的代码中切换公司的激活状态。因此,首先我获取激活状态,切换它,然后启动更新查询。但这表明con.query1()不是一个函数

我检查了所有可能的错误,但还是没能找到

我在很多网站上搜索过,但上面说会有拼写错误

var val;
app.post("/edit/company", (req, res) => {
  let comid = req.body.comid;
  let sql = "SELECT is_active from tblcompany where cid='" + comid + "'";
  let query = con.query(sql, (err, result) => {
    if (err) throw err;
    val = result[0].is_active;

    if (val == "1") val = 0;
    else val = 1;

    console.log("Value of Activation Status: " + val);
  });
  console.log("Value of activation status:" + val);
  console.log("Value of Company" + comid);

  let sql1 =
    "UPDATE tblcompany SET is_active=" + val + " where cid=" + comid + "";
  let query1 = con.query1(sql1, (err, result) => {
    if (err) throw err;
    console.log(result);
    // res.send(JSON.stringify(result));
  });
});

仅使用SQL就可以避免一些检查

  UPDATE tblcompany SET is_active =  case when is_active  = 1 then 0 else 1 end 
  WHERE ......

您应该使用con.query()…而不是query1

您可以避免使用SQL进行一些检查

  UPDATE tblcompany SET is_active =  case when is_active  = 1 then 0 else 1 end 
  WHERE ......

您应该使用con.query()…而不是query1

您只能使用一个更新查询来切换is\u活动字段中的值

更新tblcompany集合为_active=IF(is_active=1,0,1),其中cid='“+comid+”

没有与conn(conn.query1)相同的query1函数。您必须使用相同的查询函数来执行sql查询


conn.query(“sql查询”,callbackFunction)

您只能使用一个更新查询来切换处于活动状态字段中的值

更新tblcompany集合为_active=IF(is_active=1,0,1),其中cid='“+comid+”

没有与conn(conn.query1)相同的query1函数。您必须使用相同的查询函数来执行sql查询

conn.query(“sql查询”,callbackFunction)您可以使用:

UPDATE tblcompany
    SET is_active = 1 - is_active
    WHERE cid = ?;
是一个参数占位符。您应该学习如何使用参数将值传递到查询中

您还可以表示为:

UPDATE tblcompany
    SET is_active = NOT is_active
    WHERE cid = ?;
您可以使用:

UPDATE tblcompany
    SET is_active = 1 - is_active
    WHERE cid = ?;
是一个参数占位符。您应该学习如何使用参数将值传递到查询中

您还可以表示为:

UPDATE tblcompany
    SET is_active = NOT is_active
    WHERE cid = ?;

试过的
让query1=con.query(sql1,…
?试过的
让query1=con.query(sql1,…