Your SQL statement is a "prepared query" which is good form, it protects the database from SQL injection (I've learned that by rote, no idea how it actually works).
I personally avoid the ?, ?, ?, ... syntax, preferring a prepared query with msg.payload as explicit key: value pairs.
So I would have written your function like this
const dataArray = msg.payload.split(";");
msg.payload = {
"itype": dataArray[1],
"ihum": dataArray[2];
"itemp": dataArray[3],
"ihic": dataArray[4],
"irsrp": dataArray[5]
}
msg.topic = "insert into DHT (Type,Hum,Temp,Hic,rsrp) values (:itype, :ihum, :itemp, :ihic, :irsrp)"
return msg
Have fun with Node-red!