node-red-node-mysql ======================== A Node-RED node to read and write to a MySQL database. Install ------- Either use the `Node-RED Menu - Manage Palette - Install`, or run the following command in your Node-RED user directory - typically `~/.node-red` npm i node-red-node-mysql Usage ----- Allows basic access to a MySQL database. This node uses the **query** operation against the configured database. This does allow both INSERTS and DELETES. By its very nature it allows SQL injection... so *be careful out there...* The `msg.topic` must hold the *query* for the database, and the result is returned in `msg.payload`. Typically the returned payload will be an array of the result rows. If nothing is found for the key then *null* is returned. The reconnect retry timeout in milliseconds can be changed by adding a line to **settings.js** ```javascript mysqlReconnectTime: 30000, ``` The timezone can be set like GMT, EST5EDT, UTC, etc. The charset defaults to the "old" Mysql 3 byte UTF. If you need support for emojis etc then use UTF8MB4. 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 ----- Documentation of the used Node.js package