I am trying to insert into a table called Observations, I need to insert 10 rows using for loop, I have an array of 10 values that need to be inserted in a column called sens_value which is an INT type. I have tried the following code but it cant take sensValues[i] as an INT.
I am using noodjs to insert into tables using mariadb database.
Basically I am looking for a way to insert different INT values into my SQL statement using for loop. I tried the following code:
x
const mariadb = require('mariadb/callback');
const dbConn = mariadb.createConnection({host: 'localhost', user:'tudublin', password: 'tudublinpwd', database: 'IoT'});
var sensValues = [10,20,30,15,18,22,28,33,16,40];
for (var i in sensValues) {
console.log(sensValues[i]) //10,20,30,15,18,22,28,33,16,40
var sql = "INSERT INTO Observations (sensor_id, sens_value, sens_units, dt_added) VALUES (2, sensValues[i], 'C Deg per Volt', now());";
dbConn.query(sql, insertCallback)
}
function insertCallback(err, res) {
if (err) {new Date().getTime()
console.log(err.message);
} else {
console.log(res);
dbConn.end();
}
}
Advertisement
Answer
The sensValues[i]
in the VALUES is treated as a string, not as a value from the array. Pass it on as a parameter:
var sql = "INSERT INTO Observations (sensor_id, sens_value, sens_units, dt_added) VALUES (2, ?, 'C Deg per Volt', now());";
dbConn.query(sql, [sensValues[i]], insertCallback)