From feb19604e293cf72a142301d53c2c7dc6a71f55b Mon Sep 17 00:00:00 2001 From: Lichen Dai Date: Wed, 24 Nov 2021 17:38:40 +0800 Subject: [PATCH] set query format function globally --- storage/mysql/68-mysql.js | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/storage/mysql/68-mysql.js b/storage/mysql/68-mysql.js index f09e9862..96ddbb8e 100644 --- a/storage/mysql/68-mysql.js +++ b/storage/mysql/68-mysql.js @@ -107,28 +107,32 @@ module.exports = function(RED) { } }); + node.mydbConfig.pool.on('acquire', function(connection) { + connection.config.queryFormat = function(query, values) { + if (!values) { + return query; + } + if (Array.isArray(values)) { + return mysqldb.format(query, values); + } + else if (typeof values === 'object' && values !== null) { + return query.replace(/\:(\w+)/g, function(txt, key) { + if (values.hasOwnProperty(key)) { + return this.escape(values[key]); + } + return txt; + }.bind(this)); + } + return query + } + }); + node.on("input", function(msg, send, done) { send = send || function() { node.send.apply(node,arguments) }; if (node.mydbConfig.connected) { if (typeof msg.topic === 'string') { //console.log("query:",msg.topic); - var bind = []; - if (Array.isArray(msg.payload)) { bind = msg.payload; } - else if (typeof msg.payload === 'object' && msg.payload !== null) { - bind = msg.payload; - node.mydbConfig.pool.config.queryFormat = function(query, values) { - if (!values) { - return query; - } - return query.replace(/\:(\w+)/g, function(txt, key) { - if (values.hasOwnProperty(key)) { - return this.escape(values[key]); - } - return txt; - }.bind(this)); - }; - } - node.mydbConfig.pool.query(msg.topic, bind, function(err, rows) { + node.mydbConfig.pool.query(msg.topic, msg.payload, function(err, rows) { if (err) { status = {fill:"red",shape:"ring",text:"Error: "+err.code}; node.status(status);