mysql - 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 错误。这里有什么问题以及可能的解决方案是什么......?
解决方案
自己找到了解决方案.... :)
问题是SET SQL_SAFE_UPDATES;
,即使在 MySQL 中更新没有键列的记录时会提示错误,但在通过 nodejs 执行时,您似乎不需要它。
推荐阅读
- javascript - 尽管编解码器兼容且正确,为什么透明视频无法在 Safari 上运行?
- javascript - javascript 获取函数命名空间,如 chrome 调试器中所示?
- dataframe - 列和别名上的数据框分组
- python - 未能使用 ETS 进行预测
- java - 我想在后台服务中添加颜色效果或设备摄像头的任何其他更改
- python - 将一列熊猫数据框的值分配给另一列中的参数列表
- javascript - 通过 npm 运行时 Expo 发布失败
- angular - 对 Url 的 post 请求给出了被 cors 策略阻止的错误
- java - Swing 中并排的两个 BoxLayout
- android-source - Android开源库LocAPI的LocEngAdapter类中sendMsg()函数的机制