# Newbie - msg.payload into SQL

**URL:** <https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051>\
**Category:** General\
**Created:** [11 December 2019 23:22 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051 "2019-12-11T23:22:59Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![kajoty](https://avatars.discourse-cdn.com/v4/letter/k/8c91f0/32.png) [@kajoty](https://discourse.nodered.org/u/kajoty)\
**Post date:** [11 December 2019 23:22 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/1 "2019-12-11T23:22:59Z")

</div>

Hi. I'm a newbie to NODE RED, SQL, webserver ...

I try to put all the info from msg.payload into a database.  
I installed everthing and it works for me.  
SQL connect. Datas are going in.

my function is:

```auto
msg.topic = "INSERT INTO dbasename(data1) VALUES ('"+msg.payload+"')";
return msg;

```

debug output:

```auto
INSERT INTO dbasename(data1) VALUES ('[object Object]') : msg.payload : Object

```

[object Object] are going into database but not the json datas  
Could you please give me a advise regarding my funktion. I dont want to split the json file. I want to input the entire info.

payload is eg.

```auto
 msg.payload : string[179]
"{"time" : "2019-12-11 23:23:26", "model" : "GT-WT02", "id" : 165, "channel" : 1, "battery" : "OK", "temperature_C" : 4.000, "humidity" : 100.000, "button" : 0, "mic" : "CHECKSUM"}"

```

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [12 December 2019 09:44 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/2 "2019-12-12T09:44:56Z")

</div>

What are the definitions of the columns in the `dbasename` table?

As a self described newbie, have you taken a mySQL tutorial? Something like [https://www.w3schools.com/sql/default.asp](https://www.w3schools.com/sql/default.asp)

---

<div class="post-metadata">

**Author:** ![kajoty](https://avatars.discourse-cdn.com/v4/letter/k/8c91f0/32.png) [@kajoty](https://discourse.nodered.org/u/kajoty)\
**Post date:** [12 December 2019 11:03 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/3 "2019-12-12T11:03:26Z")

</div>

Hello Zenofmud  
thanks for your reply. My database info are:  
10.3.18-MariaDB-0+deb10u1 - Debian 10  
The dbase name ="dbasename"  
there are 2 columns in it. 1. name is "timestamp" typ "timestamp"  
the 2nd is named "data1" typ "text"  
I administrate it with phpmyadmin

And I havnt take done this tutorial. But I watched several videos on youtube.

---

<div class="post-metadata">

**Author:** ![kajoty](https://avatars.discourse-cdn.com/v4/letter/k/8c91f0/32.png) [@kajoty](https://discourse.nodered.org/u/kajoty)\
**Post date:** [12 December 2019 11:58 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/4 "2019-12-12T11:58:36Z")

</div>

BTW I changed my function to

```auto
var obj = msg.payload;
var myJSON = JSON.stringify(obj);
msg.topic = "INSERT INTO dbasename(data1) VALUES ('"+myJSON+"')";
return msg;

```

Now I see the json object in my column "data1"

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [12 December 2019 12:06 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/5 "2019-12-12T12:06:23Z")

</div>

Congratulations you’ve figured it out!

---

<div class="post-metadata">

**Author:** ![kajoty](https://avatars.discourse-cdn.com/v4/letter/k/8c91f0/32.png) [@kajoty](https://discourse.nodered.org/u/kajoty)\
**Post date:** [12 December 2019 12:07 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/6 "2019-12-12T12:07:48Z")

</div>

But is it right?  
Do I have to "stringify" my object to a variable?

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [12 December 2019 12:19 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/7 "2019-12-12T12:19:52Z")

</div>

Well you can't store a json object into a text column since the data types don't match. [Have a read of this](https://scotch.io/tutorials/working-with-json-in-mysql) and see if it helps.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [13 December 2019 14:41 UTC](https://discourse.nodered.org/t/newbie-msg-payload-into-sql/19051/8 "2019-12-13T14:41:01Z")

</div>

According to the first post the payload is a string, but that cannot be correct, it must be a javascript object.  
**[Edit]** By that I mean that if it were a string it would work, to get the error posted the payload must in fact contain an object.
