我想在代码中切换公司的激活状态。因此,我首先选择activation_status,对其进行切换,然后触发更新查询。但这表明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));
});
});
答案 0 :(得分:0)
您可以仅使用SQL来避免进行某些检查
UPDATE tblcompany SET is_active = case when is_active = 1 then 0 else 1 end
WHERE ......
,您应该使用con.query()..not query1
答案 1 :(得分:0)
您只能使用一个更新查询来切换is_active字段中的值。
更新tblcompany SET is_active = IF(is_active = 1,0,1),其中cid ='“ + comid +”';
和
没有与conn(conn.query1)一起用作query1的功能。您必须使用相同的查询功能来执行sql查询。
conn.query(“ sql查询”,callbackFunction)
答案 2 :(得分:0)
您可以使用:
UPDATE tblcompany
SET is_active = 1 - is_active
WHERE cid = ?;
?
是参数占位符。您应该学习如何使用参数将值传递给查询。
您也可以将其表示为:
UPDATE tblcompany
SET is_active = NOT is_active
WHERE cid = ?;