【问题标题】:Insert Statement Node-Red, MySQL, JSON插入语句节点-Red、MySQL、JSON
【发布时间】:2020-09-23 12:44:44
【问题描述】:

我有以下节点红色流程: Node-Red Flow

问题在于插入语句。我想在 mysql 表中插入测量值,如下所示: MySql Table schema

我当前的插入语句如下所示:

var nodeID= parseInt(msg.payload.nodeID);
var temperature= parseFloat(msg.payload.temperature);
var values = {"temperature": temperature};

msg.topic = "INSERT INTO measurements (nodeID,values) VALUES ('"+nodeID+"', '"+JSON.stringify(values)+"')";
msg.payload = [nodeID, temperature];
return msg;

这给了我以下错误:
“错误:ER_PARSE_ERROR:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'values) VALUES ('1', '{"temperature":24.125}') 附近使用的正确语法'在第 1 行"

有人可以帮助我吗?我不知道出了什么问题?谢谢:)

【问题讨论】:

    标签: mysql json insert node-red


    【解决方案1】:

    您应该使用 msg.topic = `INSERT INTO measurement (nodeID,values) VALUES

    ('${nodeID}','${JSON.stringify(values)}')`;

    【讨论】:

    • 谢谢我试过这个,但我仍然得到同样的错误:“错误:ER_PARSE_ERROR:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法在第 1 行使用 'values) VALUES ('1','{"temperature":24.125}')'
    • 当我将其更改为“JSON.parse(values)”时,错误变为:“SyntaxError:位置 1 处 JSON 中的意外标记 o”。有什么想法吗?
    • 你试过不做JSON.stringfy直接发送'values'吗?
    • 是的,我做到了,然后我收到此错误:“错误:ER_PARSE_ERROR:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 ' 附近使用的正确语法values) VALUES ('1', '[object Object]')' at line 1"
    • 我现在成功了!!!!这是有效的解决方案: var nodeID= parseInt(msg.payload.nodeID); var 温度 = parseFloat(msg.payload.temperature); var data = {“温度”:温度}; msg.topic = "插入测量值 (nodeID,data) VALUES ('"+nodeID+"','"+JSON.stringify(data)+"')"; //msg.topic = INSERT INTO measurements (nodeID,values) VALUES ('${nodeID}','${JSON.stringify(results)}'); msg.payload = [nodeID, 温度];返回味精;所以我认为要么是我误用的关键字“值”,要么是 JSON.stringify..aniway,感谢您的帮助:)
    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多