mirror of
https://github.com/node-red/node-red-nodes.git
synced 2023-10-10 13:36:58 +02:00
MySQL allows to pass named parameters as object (#565)
* add check isobj * added example to readme.md * edit if Syntax * add Documentation link to readme.md * fixed Syntax and edit readme.md
This commit is contained in:
parent
dfda66f415
commit
0351441075
@ -123,7 +123,23 @@ module.exports = function(RED) {
|
|||||||
node.on("input", function(msg) {
|
node.on("input", function(msg) {
|
||||||
if (node.mydbConfig.connected) {
|
if (node.mydbConfig.connected) {
|
||||||
if (typeof msg.topic === 'string') {
|
if (typeof msg.topic === 'string') {
|
||||||
var bind = Array.isArray(msg.payload) ? msg.payload : [];
|
//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.connection.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.connection.query(msg.topic, bind, function(err, rows) {
|
node.mydbConfig.connection.query(msg.topic, bind, function(err, rows) {
|
||||||
if (err) {
|
if (err) {
|
||||||
status = {fill:"red",shape:"ring",text:"Error: "+err.code};
|
status = {fill:"red",shape:"ring",text:"Error: "+err.code};
|
||||||
|
@ -27,3 +27,26 @@ If nothing is found for the key then <i>null</i> is returned.
|
|||||||
|
|
||||||
The reconnect retry timeout in milliseconds can be changed by adding a line to <b>settings.js</b>
|
The reconnect retry timeout in milliseconds can be changed by adding a line to <b>settings.js</b>
|
||||||
<pre>mysqlReconnectTime: 30000,</pre></p>
|
<pre>mysqlReconnectTime: 30000,</pre></p>
|
||||||
|
|
||||||
|
|
||||||
|
Preparing Queries
|
||||||
|
-----
|
||||||
|
```javascript
|
||||||
|
msg.payload=[24, 'example-user'];
|
||||||
|
msg.topic="INSERT INTO users (`userid`, `username`) VALUES (?, ?);"
|
||||||
|
return msg;
|
||||||
|
```
|
||||||
|
|
||||||
|
with named parameters:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
msg.payload={}
|
||||||
|
msg.payload.userToChange=42;
|
||||||
|
msg.payload.newUsername="example-user";
|
||||||
|
msg.topic="INSERT INTO users (`userid`, `username`) VALUES (:userToChange, :newUsername) ON DUPLICATE KEY UPDATE `username`=:newUsername;"
|
||||||
|
return msg;
|
||||||
|
```
|
||||||
|
Documentation
|
||||||
|
-----
|
||||||
|
|
||||||
|
<a href="https://www.npmjs.com/package/mysql" target="_new">Documentation</a> of the used Node.js package
|
||||||
|
Loading…
Reference in New Issue
Block a user