首页 > 解决方案 > NodeJS:更新查询在 MySQL 中不起作用

问题描述

考虑下面的代码:

const queryString = "SET SQL_SAFE_UPDATES = 0; " +
"UPDATE fire_alarm.sensors " +
"SET smoke_level = " + smokeLevel + ", " +
    "carbondioxide_level = " + carbondioxideLevel + ", " +
    "sensor_status = '" + sensorStatus + "', " +
    "alert_status = '" + alertStatus + "'  " +
"WHERE floor_no = " + floorNumber + " AND room_no = " + roomNumber + ";  " +
"SET SQL_SAFE_UPDATES = 1;";

connection.query( queryString, function (err, rows) {
    if(err){
        console.error("Error : " + err);
        res.send(err);
        return;
    }
    res.json(rows);
});

执行请求时,我得到的错误是:

{
 "code": "ER_PARSE_ERROR",
 "errno": 1064,
 "sqlMessage": "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 'UPDATE fire_alarm.sensors SET smoke_level = 6, carbondioxide_level = 6, sensor_s' at line 1",
} 

但是当我在 MySQL Workbench 中运行上面的查询时,它会正确更新而没有任何 SQL 错误。这里有什么问题以及可能的解决方案是什么......?

标签: mysqlnode.js

解决方案


自己找到了解决方案.... :)

问题是SET SQL_SAFE_UPDATES;,即使在 MySQL 中更新没有键列的记录时会提示错误,但在通过 nodejs 执行时,您似乎不需要它。


推荐阅读